Mit den Funktionen setsockopt() und getsockopt() setzen Sie verschiedene Optionen für Sockets bzw. fragen Sie die aktuellen Werte ab.
Optionen setzen Sie z.B., um für eine Socket-Verbindung die keepalive-Überwachung zu aktivieren bzw. das Zeitintervall für die Überwachung zu verändern.
Die allgemeine Form der Aufrufe lautet:
setsockopt(s, level, optname, optval, optlen);
getsockopt(s, level, optname, optval, optlen);
s bezeichnet den Socket, für den die Option gesetzt bzw. abgefragt werden soll.
level gibt die Protokollebene an, der die Option angehört. Normalerweise ist dies die Socket-Ebene, die durch die symbolische Konstante SOL_SOCKET (bei AF_INET, AF_INET6) bzw. SOL_TRANSPORT (bei AF_ISO) angezeigt wird. SOL_SOCKET und SOL_TRANSPORT sind definiert in <sys.socket.h>.
Weitere level sind SOL_GLOBAL, IP_PROTO_TCP, IP_PROTO_IPv4, IP_PROTO_IPv6, IPPROTO_ICMP und IPPROTO_ICMPv6. Aus Kompatibilitätsgründen wird auch IP_PROTO_IP wie IP_PROTO_IPv4 unterstützt. Eine Beschreibung dieser level finden Sie bei der Beschreibung der Funktionen getsockopt() und setsockopt() im Abschnitt "getsockopt(), setsockopt() - Socket-Optionen abfragen und ändern".
In optname wird die Socket-Option angegeben. Die Socket-Option ist ebenfalls eine in <sys.socket.h> definierte symbolische Konstante.
optval ist ein Zeiger auf den Wert der Option. Bei setsockopt() schalten Sie mit optval die Option optname für den Socket s ein oder aus. Bei getsockopt() informiert Sie optval, ob die Option optname für den Socket s ein- oder ausgeschaltet ist.
Bei setsockopt() gibt optlen die Länge von optval an. Bei getsockopt() ist optlen ein Zeiger auf einen Integer-Wert, der beim Aufruf die Größe des Speicherplatzes angibt, auf den optval zeigt. Nach der Rückkehr von getsockopt() wird als Integer-Wert, auf den optlen zeigt, die aktuelle Länge des in optval zurückgelieferten Wertes zurückgeliefert.