socketpair(3N-xs) (X/OPEN SOCKETS) socketpair(3N-xs)
NAME
socketpair - Ein Paar verbundener Sockets erstellen
SYNTAX
cc [flag ...] file ... -lxnet [library ...]
#include <sys/socket.h>
int socketpair(int domain, int type, int protocol,
int socketvector[2]);
BESCHREIBUNG
Die Funktion socketpair erstellt ein ungebundenes Paar verbundener
Sockets eines bestimmten Typs type in einer bestimmten Domäne domain
unter dem Protokoll, das optional durch das Argument protocol angege-
ben werden kann. Die beiden erstellten Sockets sind identisch. Die
Dateideskriptoren, über die auf die erstellten Sockets verwiesen wird,
werden in socketvector[0] und socketvector[1] zurückgegeben.
domain Gibt die Kommunikationsdomäne an, in der die Sockets
erstellt werden sollen.
type Gibt den Typ der zu erstellenden Sockets an.
protocol Gibt ein bestimmtes Protokoll an, das für die Sockets
verwendet werden soll. Bei Angabe von 0 verwendet
socketpair ein nicht näher spezifiziertes Standardpro-
tokoll, das für den angeforderten Socket-Typ geeignet
ist.
socketvector Gibt ein aus 2 Ganzzahlen bestehendes Array an, in dem
die Dateideskriptoren für das erstellte Socket-Paar
stehen.
Das Argument type gibt den Socket-Typ an, der die Semantik für die
Kommunikation über den Socket festlegt. Die vom System unterstützten
Socket-Typen sind von der jeweiligen Implementierung abhängig. Mögli-
che Socket-Typen sind:
SOCKSTREAM Stellt regelmäßige, zuverlässige, bidirektionale, ver-
bindungsorientierte Byte-Streams zur Verfügung; außer-
dem kann ein Mechanismus für die Übertragung von Out-
of-Band-Daten (Daten außerhalb des normalen Daten-
stroms) verfügbar sein.
SOCKDGRAM Stellt Datagramme zur Verfügung; hierbei handelt es
sich um nicht zuverlässige Meldungen ohne Verbindungen
mit fester Maximallänge.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
socketpair(3N-xs) (X/OPEN SOCKETS) socketpair(3N-xs)
SOCKSEQPACKET Stellt einen regelmäßigen, zuverlässigen, bidirektio-
nalen, verbindungsorientierten Übertragungspfad für
Sätze zur Verfügung. Ein Satz kann über eine oder meh-
rere Ausgabeoperationen gesendet und über eine oder
mehrere Eingabeoperationen empfangen werden. Eine ein-
zelne Operation überträgt jedoch niemals einen Teil
von mehreren Sätzen. Über das Flag MSGEOR kann sich
der Empfänger die Satzgrenzen anzeigen lassen.
Ist das Argument protocol ungleich Null, muß es ein von der Adreßfami-
lie unterstütztes Protokoll angeben. Die vom System unterstützten Pro-
tokolle sind von der jeweiligen Implementierung abhängig.
RÜCKGABEWERT
Bei erfolgreicher Ausführung gibt die Funktion 0 zurück. Andernfalls
wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
FEHLER
Die Funktion socketpair schlägt fehl, wenn eine der folgenden Bedin-
gungen zutrifft:
EAFNOSUPPORT Die angegebene Adreßfamilie wird von der Implementie-
rung nicht unterstützt.
EMFILE Für diesen Prozeß stehen keine weiteren Dateideskrip-
toren mehr zur Verfügung.
ENFILE Für das System stehen keine weiteren Dateideskriptoren
mehr zur Verfügung.
EOPNOTSUPP Das angegebenen Protokoll läßt keine Erstellung von
Socket-Paaren zu.
EPROTONOSUPPORT Das Protokoll wird entweder von der Adreßfamilie oder
von der Implementierung nicht unterstützt.
EPROTOTYPE Der Socket-Typ wird vom Protokoll nicht unterstützt.
Die Funktion socketpair kann fehlschlagen, wenn eine der folgenden
Bedingungen zutrifft:
EACCES Der Prozeß verfügt nicht über die erforderlichen
Berechtigungen.
ENOMEM Der verfügbare Speicher reicht für die Anforderung
nicht aus.
ENOBUFS Die im System verfügbaren Ressourcen reichen für die
Ausführung der Operation nicht aus.
ENOSR Die verfügbaren STREAMS-Ressourcen reichen für die
Ausführung der Operation nicht aus.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
socketpair(3N-xs) (X/OPEN SOCKETS) socketpair(3N-xs)
ANWENDUNGSZWECK
Aus der Dokumentation zu den einzelnen Adreßfamilien geht hervor, wel-
che Protokolle von der jeweiligen Adreßfamilie unterstützt werden. Aus
der Dokumentation zu den einzelnen Protokollen geht hervor, welche
Socket-Typen vom jeweiligen Protokoll unterstützt werden.
Die Funktion socketpair wird hauptsächlich mit Sockets der UNIX Domäne
verwendet und muß für andere Domänen nicht unterstützt werden.
SIEHE AUCH
socket(3N-xs).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98