setsockopt(3N-xs) (X/OPEN SOCKETS) setsockopt(3N-xs)
NAME
setsockopt - Die Socket-Optionen setzen
SYNTAX
cc [flag ...] file ... -lxnet [library ...]
#include <sys/socket.h>
int setsockopt(int socket, int level, int optionname, const void
*optionvalue, sizet optionlen);
BESCHREIBUNG
Die Funktion setsockopt setzt die durch das Argument optionname ange-
gebene Option (auf Protokollebene angegeben durch das Argument level)
für den Socket, der dem im Argument socket angegebenen Dateideskriptor
zugeordnet ist, auf den Wert, auf den das Argument optionvalue zeigt.
Das Argument level gibt die Protokollebene für die Option an. Zum Set-
zen von Optionen auf Socket-Ebene muß für das Argument level SOLSOCKET
angegeben werden. Zum Setzen von Optionen auf anderen Ebenen muß die
entsprechende Protokollnummer für das Protokoll angegeben werden, das
die Option steuert. Soll beispielsweise angegeben werden, daß eine
Option vom TCP (Transport Control Protocol) interpretiert wird, muß
level auf die Protokollnummer des TCP gesetzt werden. Diese kann dem
Header <netinet/in.h> entnommen oder über getprotobyname ermittelt wer-
den.
Das Argument optionname gibt eine einzelne zu setzende Option an.
Dieses Argument sowie alle angegebenen Optionen werden uninterpretiert
an das für die Interpretation zuständige Protokollmodul weitergelei-
tet. Der Header <sys/socket.h> definiert die Optionen der Socket-
Ebene. Diese Optionen können aktiviert und deaktiviert werden. Die
Optionen sind:
SODEBUG Aktiviert das Aufzeichnen von Testdaten. Diese Option
aktiviert bzw. deaktiviert die Testhilfe in den
zugrundeliegenden Protokollmodulen. Für die Option ist
ein ganzzahliger Wert (int) erforderlich.
SOBROADCAST Läßt das Senden von Broadcast-Meldungen zu, sofern
dies vom Protokoll unterstützt wird. Für die Option
ist ein ganzzahliger Wert (int) erforderlich.
SOREUSEADDR Gibt an, daß die Regeln für die Gültigkeitsprüfung der
für bind angegebenen Adressen die Wiederverwendung
lokaler Adressen zulassen sollen, sofern dies vom Pro-
tokoll unterstützt wird. Für die Option ist ein ganz-
zahliger Wert (int) erforderlich.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
setsockopt(3N-xs) (X/OPEN SOCKETS) setsockopt(3N-xs)
SOKEEPALIVE Läßt Verbindungen aktiv, indem Meldungen in regelmäßi-
gen Abständen übertragen werden, sofern dies vom Pro-
tokoll unterstützt wird. Für die Option ist ein ganz-
zahliger Wert (int) erforderlich.
Wenn der verbundene Socket auf diese Meldungen nicht
antwortet, wird die Verbindung abgebrochen und Pro-
zesse, die auf diesen Socket schreiben, werden durch
ein Signal SIGPIPE benachrichtigt.
SOLINGER Wartet bei der Ausgabe von close, wenn noch Daten vor-
handen sind. Diese Option steuert die Maßnahmen, die
auszuführen sind, wenn noch nicht gesendete Meldungen
in der Warteschlange eines Socket stehen, und close
durchgeführt wird. Wenn SOLINGER gesetzt ist, blok-
kiert das System den Prozeß während close so lange,
bis es die Daten übertragen kann oder bis die verfüg-
bare Zeit abgelaufen ist. Wenn SOLINGER nicht angege-
ben ist und close ausgegeben wird, verarbeitet das
System den Aufruf so, daß der Prozeß so schnell wie
möglich fortgesetzt werden kann. Für diese Option ist
eine linger-Struktur erforderlich, wie im Header
<sys/socket.h> definiert, um den Status der Option und
das linger-Intervall anzugeben.
SOOOBINLINE Beläßt empfangene Out-of-Band-Daten (als dringend mar-
kierte Daten) im normalen Datenstrom. Für diese Option
ist ein ganzzahliger Wert (int) erforderlich.
SOSNDBUF Setzt die Größe des Sendepuffers. Für diese Option ist
ein ganzzahliger Wert (int) erforderlich.
SORCVBUF Setzt die Größe des Empfangspuffers. Für diese Option
ist ein ganzzahliger Wert (int) erforderlich.
Bei booleschen Optionen gibt 0 die Deaktivierung und 1 die Aktivierung
an.
Optionen auf anderen Protokollebenen weichen hinsichtlich Format und
Name voneinander ab.
RÜCKGABEWERT
Bei erfolgreicher Ausführung gibt setsockopt 0 zurück. Andernfalls
wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
FEHLER
Die Funktion setsockopt schlägt fehl, wenn eine der folgenden Bedin-
gungen zutrifft:
EBADF Das Argument socket ist kein gültiger Dateideskriptor.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
setsockopt(3N-xs) (X/OPEN SOCKETS) setsockopt(3N-xs)
EINVAL Die angegebene Option ist auf der angegebenen Socket-
Ebene nicht gültig, oder der Socket wurde geschlossen.
ENOPROTOOPT Die Option wird vom Protokoll nicht unterstützt.
ENOTSOCK Das Argument socket verweist nicht auf einen Socket.
Die Funktion setsockopt kann fehlschlagen, wenn eine der folgenden
Bedingungen zutrifft:
ENOMEM Der verfügbare Speicher reicht für die Ausführung der
Operation nicht aus.
ENOBUFS Die im System verfügbaren Ressourcen reichen für die
Ausführung des Aufrufs nicht aus.
ENOSR Die verfügbaren STREAMS-Ressourcen reichen für die
Ausführung der Operation nicht aus.
ANWENDUNGSZWECK
Die Funktion setsockopt stellt ein Anwendungsprogramm zur Verfügung,
mit dem das Socket-Verhalten gesteuert werden kann. Ein Anwendungspro-
gramm kann setsockopt verwenden, um Pufferplatz zuzuordnen, Zeitlimits
zu steuern oder das Broadcasting von Socket-Daten zu ermöglichen. Der
Header <sys/socket.h> definiert die für setsockopt verfügbaren Optio-
nen der Socket-Ebene.
Optionen können auf mehreren Protokollebenen vorliegen. Die SO-Optio-
nen gehören stets zur höchsten Socket-Ebene.
SIEHE AUCH
bind(3N-xs), getprotoent(3N-xs), getsockopt(3N-xs), socket(3N-xs),
ip(7).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98