Les appels élémentaires du système de socket de transfert de données pour envoyer et recevoir des données via le socket sont send() et recv(). Chaque appel prend quatre paramètres :
- descripteur de socket : Le descripteur de socket du socket sur lequel envoyer ou recevoir des données.
- tampon : Pointeur vers la mémoire tampon qui contient les données à envoyer ou est utilisée pour stocker les données reçues.
- longueur : La longueur des données à envoyer ou à recevoir.
- drapeaux : Un ensemble d'indicateurs qui peuvent être utilisés pour modifier le comportement de l'appel.
L'appel `send()` transmet les données du tampon du programme au tampon du homologue via le socket.
L'appel `recv()` reçoit les données du tampon du homologue vers le tampon du programme via le socket.
Les indicateurs suivants peuvent être utilisés avec `send()` :
- MSG_CONFIRM :Provoque l'envoi immédiat des données sur le réseau.
- MSG_DONTROUTE : Empêche les données d'être acheminées via la passerelle par défaut. Cette fonctionnalité peut être utile pour envoyer des données à un hôte spécifique.
- MSG_EOR : Indique que le message est la fin d'un enregistrement.
- MSG_MORE :Indique que davantage de données sont envoyées.
- MSG_NOSIGNAL :Empêche la génération d'un signal SIGPIPE lors de l'envoi de données vers une socket fermée.
- MSG_OOB :Envoie les données hors bande. Cette fonctionnalité peut être utile pour envoyer des données urgentes.
Les indicateurs suivants peuvent être utilisés avec `recv()` :
- MSG_WAITALL : Provoque le blocage de l'appel jusqu'à ce que la totalité des données ait été reçue.
- MSG_PEEK : Permet à l'application de consulter les données sans les supprimer du tampon.
- MSG_OOB :Reçoit les données hors bande.
Les appels `send()` et `recv()` peuvent être utilisés pour envoyer et recevoir des données de n'importe quel type. Cependant, ils sont généralement utilisés pour envoyer et recevoir des données de caractères.
|