Unix Socket - Résumé
Voici une liste de toutes les fonctions liées à la programmation des sockets.
Fonctions de port et de service
Unix fournit les fonctions suivantes pour récupérer le nom du service dans le fichier / etc / services.
struct servent *getservbyname(char *name, char *proto) - Cet appel prend un nom de service et un nom de protocole et renvoie le numéro de port correspondant pour ce service.
struct servent *getservbyport(int port, char *proto) - Cet appel prend un numéro de port et un nom de protocole et renvoie le nom de service correspondant.
Fonctions de classement des octets
unsigned short htons (unsigned short hostshort) - Cette fonction convertit les quantités 16 bits (2 octets) de l'ordre des octets de l'hôte en ordre des octets du réseau.
unsigned long htonl (unsigned long hostlong) - Cette fonction convertit les quantités 32 bits (4 octets) de l'ordre des octets de l'hôte en ordre des octets du réseau.
unsigned short ntohs (unsigned short netshort) - Cette fonction convertit les quantités 16 bits (2 octets) de l'ordre des octets du réseau en ordre des octets de l'hôte.
unsigned long ntohl (unsigned long netlong) - Cette fonction convertit les quantités 32 bits de l'ordre des octets du réseau en ordre des octets de l'hôte.
Fonctions d'adresse IP
int inet_aton (const char *strptr, struct in_addr *addrptr)- Cet appel de fonction convertit la chaîne spécifiée, dans la notation par points standard Internet, en une adresse réseau et stocke l'adresse dans la structure fournie. L'adresse convertie sera dans l'ordre des octets du réseau (octets classés de gauche à droite). Il renvoie 1 si la chaîne est valide et 0 en cas d'erreur.
in_addr_t inet_addr (const char *strptr)- Cet appel de fonction convertit la chaîne spécifiée, dans la notation par points standard Internet, en une valeur entière adaptée à une utilisation comme adresse Internet. L'adresse convertie sera dans l'ordre des octets du réseau (octets classés de gauche à droite). Il renvoie une adresse IPv4 ordonnée par octet de réseau binaire 32 bits et INADDR_NONE en cas d'erreur.
char *inet_ntoa (struct in_addr inaddr) - Cet appel de fonction convertit l'adresse d'hôte Internet spécifiée en une chaîne dans la notation par points standard Internet.
Fonctions principales de socket
int socket (int family, int type, int protocol) - Cet appel renvoie un descripteur de socket que vous pouvez utiliser dans les appels système ultérieurs ou il vous donne -1 en cas d'erreur.
int connect (int sockfd, struct sockaddr *serv_addr, int addrlen)- La fonction de connexion est utilisée par un client TCP pour établir une connexion avec un serveur TCP. Cet appel renvoie 0 s'il se connecte avec succès au serveur, sinon il renvoie -1.
int bind(int sockfd, struct sockaddr *my_addr,int addrlen)- La fonction bind attribue une adresse de protocole local à une socket. Cet appel renvoie 0 s'il se lie avec succès à l'adresse, sinon il renvoie -1.
int listen(int sockfd, int backlog)- La fonction d'écoute est appelée uniquement par un serveur TCP pour écouter la demande du client. Cet appel renvoie 0 en cas de succès, sinon il renvoie -1.
int accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen)- La fonction d'acceptation est appelée par un serveur TCP pour accepter les demandes des clients et établir la connexion réelle. Cet appel renvoie un descripteur non négatif en cas de succès, sinon il renvoie -1.
int send(int sockfd, const void *msg, int len, int flags)- La fonction d'envoi est utilisée pour envoyer des données via des sockets de flux ou des sockets de datagramme CONNECTÉS. Cet appel renvoie le nombre d'octets envoyés, sinon il renvoie -1.
int recv (int sockfd, void *buf, int len, unsigned int flags)- La fonction recv est utilisée pour recevoir des données sur des sockets de flux ou des sockets de datagramme CONNECTÉS. Cet appel renvoie le nombre d'octets lus dans le tampon, sinon il renvoie -1 en cas d'erreur.
int sendto (int sockfd, const void *msg, int len, unsigned int flags, const struct sockaddr *to, int tolen)- La fonction sendto est utilisée pour envoyer des données sur des sockets de datagramme NON CONNECTÉS. Cet appel renvoie le nombre d'octets envoyés, sinon il renvoie -1 en cas d'erreur.
int recvfrom (int sockfd, void *buf, int len, unsigned int flags struct sockaddr *from, int *fromlen)- La fonction recvfrom est utilisée pour recevoir des données de sockets de datagramme NON CONNECTÉS. Cet appel renvoie le nombre d'octets lus dans le tampon, sinon il renvoie -1 en cas d'erreur.
int close (int sockfd)- La fonction de fermeture est utilisée pour fermer une communication entre le client et le serveur. Cet appel renvoie 0 en cas de succès, sinon il renvoie -1.
int shutdown (int sockfd, int how)- La fonction d'arrêt est utilisée pour fermer en douceur une communication entre le client et le serveur. Cette fonction donne plus de contrôle par rapport à la fonction de fermeture. Il renvoie 0 en cas de succès, -1 sinon.
int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout) - Cette fonction est utilisée pour lire ou écrire plusieurs sockets.
Fonctions d'assistance de socket
int write (int fildes, const void *buf, int nbyte)- La fonction d'écriture tente d'écrire n octets depuis le tampon pointé par buf dans le fichier associé au descripteur de fichier ouvert, fildes. Une fois terminé, write () renvoie le nombre d'octets réellement écrits dans le fichier associé à fildes. Ce nombre n'est jamais supérieur à n octets. Sinon, -1 est renvoyé.
int read (int fildes, const void *buf, int nbyte)- La fonction de lecture tente de lire n octets du fichier associé au descripteur de fichier ouvert, fildes, dans le tampon pointé par buf. Une fois terminé, write () renvoie le nombre d'octets réellement écrits dans le fichier associé à fildes. Ce nombre n'est jamais supérieur à n octets. Sinon, -1 est renvoyé.
int fork (void)- La fonction fork crée un nouveau processus. Le nouveau processus, appelé processus enfant, sera une copie exacte du processus appelant (processus parent).
void bzero (void *s, int nbyte)- La fonction bzero place n octets nuls dans la chaîne s. Cette fonction sera utilisée pour définir toutes les structures de socket avec des valeurs nulles.
int bcmp (const void *s1, const void *s2, int nbyte)- La fonction bcmp compare la chaîne d'octets s1 à la chaîne d'octets s2. Les deux chaînes sont supposées avoir une longueur de n octets.
void bcopy (const void *s1, void *s2, int nbyte)- La fonction bcopy copie n octets de la chaîne s1 vers la chaîne s2. Les chaînes qui se chevauchent sont gérées correctement.
void *memset(void *s, int c, int nbyte) - La fonction memset est également utilisée pour définir les variables de structure de la même manière que bzero.