Sous-routine socket
Objectif
Crée un point d'extrémité pour la communication et renvoie un descripteur.
Bibliothèque
Bibliothèque C standard (libc.a)
Syntaxe
#include <sys/socket.h>
#include <sys/socketvar.h>
int socket ( AddressFamily, Type, Protocol)
int AddressFamily, Type, Protocol;
Descriptif
La sous-routine socket crée un socket dans la AddressFamily spécifiée et du type spécifié. Un protocole peut être spécifié ou affecté par le système. Si le protocole n'est pas spécifié (valeur 0), le système sélectionne un protocole approprié à partir des protocoles de la famille d'adresses qui peuvent être utilisés pour prendre en charge le type de socket demandé.
La sous-routine Socket renvoie un descripteur (entier) qui peut être utilisé dans les sous-routines ultérieures qui fonctionnent sur des sockets.
Opérations de socket de contrôle des options de niveau de socket. Les sous-routines getsockopt et setsockopt sont utilisées pour obtenir et définir ces options, qui sont définies dans le fichier /usr/include/sys/socket.h .
Paramètres
| Article | Descriptif |
|---|---|
| AddressFamily | Indique une famille d'adresses avec laquelle les adresses spécifiées dans les opérations de socket ultérieures doivent être interprétées. Le fichier /usr/include/sys/socket.h contient les définitions des familles d'adresses. Les familles les plus couramment utilisées sont:
|
| type | Indique la sémantique de la communication. Le fichier /usr/include/sys/socket.h définit les types de socket. Le système d'exploitation prend en charge les types suivants:
|
| Protocole | Indique un protocole particulier à utiliser avec le socket. La spécification du paramètre Protocole de 0 entraîne la valeur par défaut du sous-programme Socket dans le protocole standard du type de socket renvoyé. Pour les sockets SCTP, le paramètre de protocole est IPPROTO_SCTP. Pour les sockets RDS , le paramètre Protocole est BYPASSPROTO_RDS. |
Valeurs renvoyées
Une fois l'opération terminée, la sous-routine Socket renvoie un entier (descripteur de socket).
Si la sous-routine Socket échoue, le gestionnaire de sous-programme exécute les fonctions suivantes:
- Renvoie une valeur de -1 au programme appelant.
- Déplace un code d'erreur indiquant l'erreur spécifique dans la variable globale Errno . Pour plus d'informations sur la variable Errno , voir Classe d'objets de notification d'erreur.
Codes d'erreur
Le sous-programme Socket échoue si l'une des erreurs suivantes se produit:
| Erreur | Descriptif |
|---|---|
| EAFNOSUPPORT | Les adresses de la famille d'adresses spécifiée ne peuvent pas être utilisées avec ce socket. |
| FICHIER | La table des descripteurs de processus est pleine. |
| ENOBUFS | Des ressources insuffisantes étaient disponibles dans le système pour compléter l'appel. |
| ESOCKTNOSUPPORT | Le socket de la famille d'adresses spécifiée n'est pas pris en charge. |
Exemples
Le fragment de programme suivant illustre l'utilisation de la sous-routine Socket pour créer une socket de datagramme pour une utilisation sur machine:
s = socket(AF_UNIX, SOCK_DGRAM,0);Caractéristiques de mise en oeuvre
Le sous-programme de socket fait partie de l'environnement d'exécution du système d'exploitation de base (BOS).
Les applications de socket peuvent être compilées avec COMPAT_43 défini. Cela rendra la structure sockaddr BSD 4.3 compatible. Pour plus de détails, voir socket.h.