CAsyncSocket::GetSockOpt
Rufen Sie die Memberfunktion auf, um eine Socketoption abzurufen.
BOOL GetSockOpt(
int nOptionName,
void* lpOptionValue,
int* lpOptionLen,
int nLevel = SOL_SOCKET
);
Parameter
nOptionName
Die Socketoption, für die der Wert abgerufen werden soll.lpOptionValue
Ein Zeiger auf den Puffer, in dem der Wert für die angeforderte Option zurückgegeben werden soll.Der Wert, der der ausgewählten Option zugeordnet ist, wird im Puffer lpOptionValue zurückgegeben.Die ganze Zahl, die auf durch lpOptionLen gezeigt wird, sollte die Größe dieses Puffers in Bytes ursprünglich enthalten; und bei Rückgabe, wird sie an die Größe des zurückgegebenen - Werts festgelegt.Für SO_LINGER ist dies die Größe einer LINGER-Struktur; für alle anderen Optionen wird die Größe von BOOL oder von int, abhängig von der Option.Siehe die Liste der Optionen und ihren Arrays in den Abschnitt "Hinweise".lpOptionLen
Ein Zeiger auf die Größe des lpOptionValue Puffers in Bytes.nLevel
Die Ebene, an der die Option definiert ist; Ebenen sind die einzigen unterstützten SOL_SOCKET und IPPROTO_TCP.
Rückgabewert
ungleich 0 (null), wenn die Funktion erfolgreich; andernfalls 0 und ein bestimmter Fehlercode können abgerufen werden, indem Sie GetLastError aufruft.Wenn eine Option nie mit SetSockOpt festgelegt wurde, gibt GetSockOpt den Standardwert für die Option zurück.Die folgenden Fehler gelten für diese Memberfunktion zu:
Vor der Verwendung dieser APIs WSANOTINITIALISED einem erfolgreichen AfxSocketInit muss auftreten.
WSAENETDOWN, das die Windows Socket-Implementierung hat, dass das Netzwerksubsystem fehlgeschlagen ist.
WSAEFAULT das lpOptionLen-Argument war ungültig.
Ist blockierenden Windows Socket-Vorgang WSAEINPROGRESS A ausgeführt.
WSAENOPROTOOPT die Option ist unbekannt oder nicht unterstützt.Insbesondere wird SO_BROADCAST nicht auf Sockets des Typs SOCK_STREAM unterstützt, während SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER und SO_OOBINLINE nicht auf Sockets des Typs SOCK_DGRAM unterstützt werden.
WSAENOTSOCK der Deskriptor ist kein Socket.
Hinweise
GetSockOpt ruft den aktuellen Wert für eine Socketoption ab, die einem Socket jedes Typs, in jedem Zustand zugeordnet ist und speichert das Ergebnis in lpOptionValue.Optionsaffektsocketvorgänge, wie das Routing von Paketen, Out-of-Band-Daten-Übertragung, u. a.
Die folgenden Optionen werden für GetSockOpt unterstützt.Der Typ gibt den Typ der Daten, die vom lpOptionValue behandelt werden.Die TCP_NODELAY Optionsverwendung auf Ebene IPPROTO_TCP; weitere ganze Optionsverwendungsebene SOL_SOCKET.
Wert |
Typ |
Bedeutung |
---|---|---|
SO_ACCEPTCONN |
BOOL |
Socket lauscht. |
SO_BROADCAST |
BOOL |
Socket wird für die Übertragung von Broadcastmeldungen konfiguriert. |
SO_DEBUG |
BOOL |
Debuggen ist aktiviert. |
SO_DONTLINGER |
BOOL |
Wenn true, die SO_LINGER Option deaktiviert ist. |
SO_DONTROUTE |
BOOL |
Routing wird deaktiviert. |
SO_ERROR |
int |
Rufen Sie Fehler-Status ab und deaktivieren Sie. |
SO_KEEPALIVE |
BOOL |
Halten-alives werden gesendet. |
SO_LINGER |
Struktur BLEIBEN zurück |
Gibt den aktuellen zurückbleiben Optionen zurück. |
SO_OOBINLINE |
BOOL |
Out-of-Band-Daten werden im normalen Datenstream empfangen. |
SO_RCVBUF |
int |
Puffergröße für erhält. |
SO_REUSEADDR |
BOOL |
Der Socket kann zu einer Adresse gebunden werden, die bereits in Gebrauch ist. |
SO_SNDBUF |
int |
Puffergröße für. |
SO_TYPE |
int |
Der Typ des Sockets (beispielsweise, SOCK_STREAM). |
TCP_NODELAY |
BOOL |
Deaktivieren Nagle-Algorithmus den für das Verschmelzen senden. |
Die Optionen des Berkeley Software Distribution (Bd), die nicht für GetSockOpt unterstützt werden, sind:
Wert |
Typ |
Bedeutung |
---|---|---|
SO_RCVLOWAT |
int |
Empfangen Sie Untergrenzenmarkierung. |
SO_RCVTIMEO |
int |
Empfangen Sie Timeout. |
SO_SNDLOWAT |
int |
Senden Sie Untergrenzenmarkierung. |
SO_SNDTIMEO |
int |
Senden Sie Timeout. |
IP_OPTIONS |
|
Rufen Sie Optionen in IP-Header ab. |
TCP_MAXSEG |
int |
Rufen Sie maximale Segmentgröße TCP ab. |
Das Aufrufen von GetSockOpt mit einer nicht unterstützten Option führt einen Fehlercode von WSAENOPROTOOPT, das von GetLastError zurückgegeben wird.
Anforderungen
Header: afxsock.h