Qu'est-ce que Socket C?
"Socket C" est un terme qui est parfois utilisé pour désigner le processus d'écriture du code de socket dans le langage de programmation C et parfois pour désigner le fichier de bibliothèque qui contient l'implémentation de certaines fonctions de socket. Le fichier de bibliothèque de socket C actuel contient des implémentations pour différentes fonctions et macros qui fournissent la fonctionnalité de socket de base fournie par les bibliothèques de langues, bien que le fichier de socket C dépende du système d’exploitation et puisse ne pas être implémenté sur certains systèmes. Écrire du code de socket C implique de créer une interface avec un protocole d’entrée et de sortie standard, appelé socket, et de l’utiliser pour envoyer ou recevoir des informations, généralement sur un réseau ou via un composant matériel. Le langage de programmation C est conçu pour être portable, mais la programmation des sockets s'appuie sur certaines fonctions de bas niveau spécifiques au système. Il peut donc parfois être difficile d'écrire des programmes en C utilisant des sockets, tout en maintenant la portabilité entre systèmes.
Le socket C prend en charge trois types de base de sockets. Le premier est appelé datagramme, le second est un flux et le troisième est un accès brut. Un datagramme est un type de socket qui envoie des informations en petits paquets appelés paquets. Chaque paquet est envoyé à partir d’une source contenant des informations sur le socket de destination qu’il recherche sur un réseau. Un datagramme peut être un moyen efficace de communiquer via des sockets et est souvent utilisé pour envoyer des courriers électroniques, mais il est également source de pertes, car aucun paquet envoyé ne peut arriver à la socket de destination.
Un socket de flux établit une connexion avec un autre socket et les informations sont transmises directement entre les sockets. Lorsqu'il est utilisé dans la programmation du socket C, ce type de socket garantit que toutes les données envoyées sont reçues de l'autre côté. Une complication, cependant, est que le socket peut parfois utiliser le blocage, ce qui signifie que le socket arrêtera l'exécution d'un processus jusqu'à la réception des informations ou jusqu'à la fermeture du socket, bien que l'utilisation de threads ou de processus forkés puisse résoudre ce problème dans la plupart des cas. L’accès au socket brut est fourni comme un moyen d’interfaçage quasi matériel avec le périphérique hébergeant le socket.
Les sockets sont couramment utilisés sous différentes formes pour les communications Internet. Le matériel et les pilotes permettant la mise en réseau varient considérablement selon le système d'exploitation. Il peut donc être difficile de localiser un fichier de bibliothèque de socket C prenant en charge toutes les combinaisons possibles. Pour cette raison, le fichier de socket C lui-même, ainsi que le fichier d’en-tête de socket, contient souvent une longue liste de directives de compilation conditionnelle, de sorte qu’il sera compilé différemment sur différents systèmes.