Socket-Subroutine
Zweck
Erstellt einen Endpunkt für die Kommunikation und gibt einen Deskriptor zurück
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
#include <sys/socket.h>
#include <sys/socketvar.h>
int socket ( AddressFamily, Type, Protocol)
int AddressFamily, Type, Protocol;
Beschreibung
Die Subroutine socket erstellt einen Socket in der angegebenen AddressFamily und des angegebenen Typs. Ein Protokoll kann vom System angegeben oder zugeordnet werden. Wenn das Protokoll nicht angegeben wird (Wert 0), wählt das System ein geeignetes Protokoll aus den Protokollen in der Adressfamilie aus, das zur Unterstützung des angeforderten Sockettyps verwendet werden kann.
Die Subroutine Socket gibt einen Deskriptor (eine Ganzzahl) zurück, der in späteren Subroutinen verwendet werden kann, die an Sockets arbeiten.
Socketoptionen steuern Socketoperationen. Die Subroutinen getsockopt und setsockopt werden zum Abrufen und Festlegen dieser Optionen verwendet, die in der Datei /usr/include/sys/socket.h definiert sind.
Parameter
| Element | Beschreibung |
|---|---|
| AddressFamily | Gibt eine Adressfamilie an, mit der die in späteren Socketoperationen angegebenen Adressen interpretiert werden sollen. Die Datei /usr/include/sys/socket.h enthält die Definitionen der Adressfamilien. Häufig verwendete Familien sind:
|
| Typ | Gibt die Semantik der Kommunikation an Die Datei /usr/include/sys/socket.h definiert die Sockettypen. Das Betriebssystem unterstützt die folgenden Typen:
|
| Protokoll | Gibt ein bestimmtes Protokoll an, das mit dem Socket verwendet werden soll Wenn Sie für den Parameter Protokoll den Wert 0 angeben, verwendet die Subroutine Socket standardmäßig das typische Protokoll für den angeforderten Typ des zurückgegebenen Sockets. Für SCTP-Sockets ist der Protokollparameter IPPROTO_SCTP. Für RDS -Sockets lautet der Parameter Protokoll BYPASSPROTO_RDS. |
Rückgabewerte
Nach erfolgreicher Beendigung gibt die Subroutine Socket eine ganze Zahl zurück (den Socketdeskriptor).
Wenn die Subroutine Socket nicht erfolgreich ist, führt der Subroutinenhandler folgende Funktionen aus:
- Gibt den Wert -1 an das aufrufende Programm zurück.
- Verschiebt einen Fehlercode, der den spezifischen Fehler angibt, in die globale Variable Fehlernummer . Weitere Erläuterungen zur Variablen Fehlernummer finden Sie unter Objektklasse für Fehlerbenachrichtigung.
Fehlercodes
Die Subroutine Socket ist nicht erfolgreich, wenn einer der folgenden Fehler auftritt:
| Fehler | Beschreibung |
|---|---|
| EAFNOUNTERSTÜTZUNG | Die Adressen in der angegebenen Adressfamilie können mit diesem Socket nicht verwendet werden. |
| EMDATEI | Die Deskriptortabelle pro Prozess ist voll. |
| ENOBUFS | Im System waren nicht genügend Ressourcen verfügbar, um den Aufruf abzuschließen. |
| ESOCKTNOUNTERSTÜTZUNG | Der Socket in der angegebenen Adressfamilie wird nicht unterstützt. |
Beispiele
Das folgende Programmfragment veranschaulicht die Verwendung der Subroutine Socket zum Erstellen eines Datagrammsockets für die Verwendung auf der Maschine:
s = socket(AF_UNIX, SOCK_DGRAM,0);Implementierungsspezifikationen
Die Socket-Subroutine ist Teil von Base Operating System (BOS) Runtime.
Die Socketanwendungen können mit COMPAT_43 -Definition kompiliert werden. Dadurch wird die sockaddr -Struktur BSD 4.3 kompatibel. Weitere Informationen finden Sie unter socket.h.