Création de sockets

En langage C :

C'est un moyen de communication, mis en place à l'origine par l'université de Berkeley, entre des applications.

Lors de l'utilisation de la "socket library" en langage C, il convient d'inclure les fichiers header correspondant à cette bibliothèque système et aux constantes utilisées.

#include <sys/types.h>
#include <netdb.h>
#include <sys/socket.h>
	

La première étape consiste en la création d'une socket (si ce n'était devenu également en français le terme consacré, on le traduirait en "prise" au sens "prise de courant") via l'appel système :

int socket (int domaine, int type, int protocole);
	
fd_eth = socket(AF_PACKET, SOCK_RAW, htons (ETH_P_ALL));

fd_ip = socket(AF_INET, SOCK_RAW, 97);

fd_tcp = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
fd_udp = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP);
	

Remarque : la fonction "htons" est utilisée pour mettre dans le bon ordre les deux octets constituant l'entier de type "short" (donc sur 16 bits). Elle transforme l'ordre utilisé par l'host en ordre utilisé sur le réseau. La transformation inverse pouvant être obtenue via la fonction "ntohs".

Dans d'autres langages

En Python

sock_eth = socket.socket(socket.AF_PACKET, socket.ETH_P_ALL) 

sock_ip = socket.socket(socket.AF_INET, socket.SOCK_RAW)

sock_tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	

En PHP 8.4

// le paramètre AF_PACKET n'est pas pris en charge.

$socket_ip = socket_create(AF_INET, SOCK_RAW, 97);

$socket_tcp = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$socket_udp = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);