SO _ BSP _ STATE-Socketoption

Die Option SO _ BSP _ STATE socket gibt die lokale Adresse, den lokalen Port, die Remoteadresse, den Remoteport, den Sockettyp und das Protokoll zurück, die von einem Socket verwendet werden.

Rufen Sie zum Ausführen dieses Vorgangs die getsockopt-Funktion mit den folgenden Parametern auf.

Wert der Socketoption

Die Konstante, die diese Socketoption darstellt, ist 0x1009.

Syntax

int getsockopt(
  (SOCKET) s,      // descriptor identifying a socket 
  (int) SOL_SOCKET,   // level
  (int) SO_BSP_STATE, // optname
  (char *) optval,         // output buffer,
  (int) *optlen,       // size of output buffer
);

Parameter

s [ in]

Ein Deskriptor, der den Socket identifiziert.

-Ebene [ In]

Die Ebene, auf der die Option definiert ist. Verwenden Sie SOL _ SOCKET für diesen Vorgang.

optname [ In]

Die Socketoption, für die der Wert abgerufen werden soll. Verwenden Sie SO _ BSP _ STATE für diesen Vorgang.

optval [ out]

Ein Zeiger auf den Puffer, in dem der Wert für die angeforderte Option zurückgegeben werden soll. Dieser Parameter sollte auf einen Puffer zeigen, der gleich oder größer als die Größe einer CSADDR _ INFO-Struktur ist.

optlen [ in, out]

Ein Zeiger auf die Größe des optval-Puffers in Bytes. Diese Größe muss gleich oder größer als die Größe einer CSADDR _ INFO-Struktur sein.

Rückgabewert

Wenn der Vorgang erfolgreich abgeschlossen wurde, gibt getsockopt 0 (null) zurück.

Wenn der Vorgang fehlschlägt, wird der Wert SOCKET _ ERROR zurückgegeben, und ein bestimmter Fehlercode kann durch Aufrufen von WSAGetLastErrorabgerufen werden.

Fehlercode Bedeutung
WSANOTINITIALISED
Vor der Verwendung dieser Funktion muss ein erfolgreicher WSAStartup-Aufruf erfolgen.
WSAENETDOWN
Fehler beim Netzwerksubsystem.
WSAEFAULT
Einer der optval- oder optlen-Parameter verweist auf den Arbeitsspeicher, der sich nicht in einem gültigen Teil des Benutzeradressraums befindet. Dieser Fehler wird auch zurückgegeben, wenn der Wert, auf den der optlen-Parameter zeigt, kleiner als die Größe einer CSADDR _ INFO-Struktur ist.
WSAEINPROGRESS
Eine blockierende Windows Sockets 1.1-Aufruf wird ausgeführt, oder der Dienstanbieter verarbeitet weiterhin eine Rückruffunktion.
WSAEINVAL
Der level-Parameter ist unbekannt oder ungültig.
WSAENOPROTOOPT
Die Option ist unbekannt oder wird von der angegebenen Protokollfamilie nicht unterstützt.
WSAENOTSOCK
Der Deskriptor ist kein Socket.

Bemerkungen

Die getockopt-Funktion, die mit der Socketoption SO _ BSP _ STATE aufgerufen wird, ruft die lokale Adresse, den lokalen Port, die Remoteadresse, den Remoteport, den Sockettyp und das Protokoll ab, die von einem Socket verwendet werden. Die So _ BSP _ STATE-Socketoption funktioniert mit IPv6- oder IPv4-Sockets (die AF _ INET6- und AF INET-Adressfamilien). _

Wenn die getsockopt-Funktion erfolgreich ist, werden die Informationen in einer CSADDR _ INFO-Struktur im Puffer zurückgegeben, auf den der optval-Parameter zeigt. Die ganze Zahl, auf die optlen zeigt, sollte ursprünglich die Größe dieses Puffers enthalten. Bei der Rückgabe wird sie auf die Länge des werts in Bytes festgelegt, der im optval-Parameter zurückgegeben wird.

Die Member iSocketType und iProtocol in der zurückgegebenen CSADDR _ INFO-Struktur werden für den Socketdeskriptor im s-Parameter ausgefüllt.

Wenn sich der Socket in einem verbundenen oder gebundenen Zustand befindet, wird der LocalAddr-Member der zurückgegebenen CSADDR _ INFO-Struktur auf eine SOCKADDR-Struktur festgelegt, die die lokale Adresse und den Port darstellt. Wenn sich der Socket in einem verbundenen Zustand befindet, wird der RemoteAddr-Member der zurückgegebenen CSADDR _ INFO-Struktur auf eine SOCKADDR-Struktur festgelegt, die die Remoteadresse und den Port darstellt.

Wenn sich der Socket nicht in einem verbundenen oder gebundenen Zustand befindet, wird der LocalAddr-Member der zurückgegebenen CSADDR _ INFO-Struktur mit einem NULL-Zeiger im lpSockaddr-Member und dem iSockaddrLength-Member auf 0 (null) zurückgegeben. Wenn sich der Socket nicht in einem gebundenen Zustand befindet, wird der RemoteAddr-Member der zurückgegebenen CSADDR _ INFO-Struktur mit einem NULL-Zeiger im lpSockaddr-Member und dem iSockaddrLength-Member auf 0 (null) zurückgegeben.

Wenn die getsockopt-Funktion fehlschlägt, bleiben die Parameter optval und optlen unverändert, und der optval-Parameter verweist nicht auf eine zurückgegebene CSADDR _ INFO-Struktur.

Beachten Sie, dass die Headerdatei Ws2def.h automatisch in Winsock2.h enthalten ist und niemals direkt verwendet werden sollte.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows [Nur Vista-Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2008-Desktop-Apps]
Header
Ws2def.h (einschließlich Winsock2.h)

Weitere Informationen

getsockopt

CSADDR _ INFO

SOCKADDR