I. Création d’une socket: socket()

Tout processus souhaitant communiquer doit demander à son système local la création d'une socket. La création d’une socket s’effectue grâce à l’appel système de la fonction socket.

 a. Syntaxe:


 b. Valeurs retournĂ©es :  

  • Cette fonction renvoie un identificateur sur la socket crĂ©e. Cet entier est appelĂ© descripteur ou bien n° de socket.
  • Si la fonction renvoi -1  Ă  erreur de crĂ©ation.

c. Paramètres d’entrĂ©e :  

1.  domain= family : le domaine d’une socket

Les familles les plus rĂ©pandues sont: AF : @family PF : protocol_family

  • AF_UNIX/ AF_LOCAL Protocoles internes de UNIX:  S’il s’agit d’échange d’information entre des processus d’une mĂŞme machineĂ  Communication locale.
  • AF_INET Protocoles Internet Ă  les processus tournant sur des machines distantes.

Les constantes AF_UNIX,AF_LOCAL sont définies dans le fichier <sys/socket.h>

 2. type: mode/type de communication

  • SOCK_STREAM utilisĂ©e en mode connectĂ© au dessus de TCP.
  • SOCK_DGRAM utilisĂ©e en mode dĂ©connectĂ© avec des datagrammes au dessus d’UDP.

Les constantes SOCK_STREAM, SOCK_DGRAM sont définies dans le fichier <sys/socket.h>

 3. Protocol : spĂ©cifie le protocole Ă  utiliser.

Il peut avoir les valeurs IPPROTO_TCP ,   IPPROTO_UDP...........

Les constantes IPPROTO_xxx sont définies dans le fichier <netinet/in.h>.

  Le protocol est mis Ă  0 car l’association domaine type dĂ©finie le protocole. 

II. DĂ©truire une socket:  close()

L’appel close() ferme le descripteur de fichiers

 a. Syntaxe:

 

b. Valeurs retournées : retourne 0 en cas de succès, et -1 en cas d’erreur.

c. Paramètres d’entrĂ©e :              

  • s : descripteur de socket

 

3.   RĂ©duire les fonctionalitĂ©sshutdown()

Ferme de manière unidirectionnel ou bidirectionnel la communication.

a. Syntaxe:

 

b. Valeurs retournées: retourne 0 en cas de succès, et -1 en cas d’erreur.

 c.Paramètres d’entrĂ©e :              

a)   s : descripteur de socket

b)  how : peut prendre les valeurs suivantes :

  • 0/SHUT_RD : la socket ne peut plus recevoir de donnĂ©esĂ  Ecriture seule.
  • 1/SHUT_WR : la socket ne peut plus envoyer de donnĂ©es (socket passive, Ă©coute seulement),Ă Lecteur seule
  •  2 /RDWR fin de la communication (dans les deux sens)Ă Socket dĂ©sactivĂ©e.

 

Exemple :

#include <sys/socket.h>

#include <sys/types.h>

 int s= socket (AF_UNIX , SOCK_STREAM, 0) ;

shutdown(s,0)

 close(s)


Modifié le: dimanche 18 février 2024, 23:16