Subroutine socketpair
Zweck
Erstellt ein Paar verbundener Sockets.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
#include <sys/socket.h>
int Domain, Type, Protocol;
int SocketVector[2];
Beschreibung
Die Subroutine Socketpaar erstellt ein nicht benanntes Paar verbundener Sockets in einer angegebenen Domäne eines angegebenen Typs und verwendet das optional angegebene Protokoll. Die beiden Sockets sind identisch.
Die Deskriptoren, mit denen die neuen Sockets referenziert werden, werden in den Parametern SocketVector[0] und SocketVector[1] zurückgegeben.
Die Datei /usr/include/sys/socket.h enthält die Definitionen für Socketdomänen, -typen und -protokolle.
Alle Anwendungen, die die Subroutine Socketpaar enthalten, müssen mit dem Makro _BSD-Datentabelle kompiliert werden, das auf den Wert 43 oder 44 gesetzt ist. Socketanwendungen müssen die BSD-Bibliothek libbsd.a enthalten.
Parameter
| Element | Beschreibung |
|---|---|
| Domäne | Gibt die Kommunikationsdomäne an, in der die Sockets erstellt werden. Diese Subroutine erstellt keine Sockets in der Internetdomäne. |
| Typ | Gibt die vom Socket verwendete Kommunikationsmethode an ( SOCK_DGRAM oder SOCK_DATENSTROM). |
| Protokoll | Verweist auf eine optionale Kennung, mit der angegeben wird, welcher Standardsatz von Regeln (z. B. UDP/IP und TCP/IP) die Datenübertragung regelt. |
| SocketVector | Verweist auf einen Vektor mit zwei Elementen, der die ganzzahligen Deskriptoren eines Paares erstellter Sockets enthält |
Rückgabewerte
Nach erfolgreicher Beendigung gibt die Subroutine Socketpaar den Wert 0 zurück.
Wenn die Subroutine Socketpaar 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 .
Fehlercodes
Wenn die Subroutine Socketpaar nicht erfolgreich ist, wird einer der folgenden Fehlercodes zurückgegeben:
| Fehler | Beschreibung |
|---|---|
| EAFNOUNTERSTÜTZUNG | Die Adressen in der angegebenen Adressfamilie können mit diesem Socket nicht verwendet werden. |
| EFAULT | Der Parameter SocketVector befindet sich nicht in einem beschreibbaren Teil des Benutzeradressraums. |
| EMDATEI | Dieser Prozess hat zu viele verwendete Deskriptoren. |
| ENDATEI | Die maximal zulässige Anzahl von Dateien ist momentan geöffnet. |
| ENOBUFS | Im System waren nicht genügend Ressourcen verfügbar, um die Operation auszuführen. |
| EOPNOTSUPP | Das angegebene Protokoll lässt die Erstellung von Socketpaaren nicht zu. |
| EPROTONOUNTERSTÜTZUNG | Das angegebene Protokoll kann auf diesem System nicht verwendet werden. |
| PROTOTYP | Der Socket-Typ wird vom Protokoll nicht unterstützt. |