Programmation système (Linux et C)

LPS : Linux : principes et programmation Système

Autres références Cnam Liban et cofares.net

This project is maintained by ISSAE

Les étapes pour la comminication socket (Les protocoles TCP et UDP)

Vous trouverer le premier exemple simple en TCP Exemple echo client server TCP et en UDP Exemple echo client server UDP

mode connecté TCP

TCP

Le client

  1. Création socket primitive socket()
  2. Connection au serveur
    1. Recupérer et initialiser l’adresse du serveur (gethostbyname ou getaddrinfo) J’utiliserais getaddrinfo()
    2. connection primitive connect()
  3. (répétition) Envoi et reception de données (read et write) entre le client et le serveur (une socket est une file descriptor)
  4. fermer la socket avec la primitive close

Le serveur

  1. Création socket primitive socket()
  2. Créer la socket d’écoute
    1. initialiser une adresse ip:port (interface) dans la structure sockaddr_in pour la socket d’écoute en initialisant une structure adresse socket peut être fait directement ou en utilisant l’une des primitives (gethostbyname ou getaddrinfo) voir Exemples
    2. associer l’adresse a la socket avec la primitive bind()
  3. Se mettre en attente des connections primitive listen()
  4. accepter la connection avec la primitive accept()
  5. (répétition) Envoi et reception de données (read et write) entre le client et le serveur (une socket est une file descriptor)
  6. fermer la socket avec la primitive close

Le mode non connecté UDP

UDP

Le client

  1. Création socket primitive socket()
  2. Recupérer et initialiser l’adresse du serveur (gethostbyname ou getaddrinfo) J’utiliserais getaddrinfo()
  3. (répétition) Envoi et reception de données sendto() et recvfrom()
  4. fermer la socket

Le serveur

  1. Création socket primitive socket()
  2. Créer l’interface (le service): un ip port pour les clients
    1. initialiser une adresse ip:port (interface) dans la structure sockaddr_in pour la socket d’écoute en initialisant une structure adresse socket peut être fait directement ou en utilisant l’une des primitives (gethostbyname ou getaddrinfo) voir Exemples
    2. associer l’adresse a la socket avec la primitive bind()
  3. (répétition) Envoi et reception de données sendto() et recvfrom()
  4. fermer la socketLinux programmation système (Index)