SO_BSP_STATE Socketoption
Die SO_BSP_STATE Socketoption 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 Funktion getockopt 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 für diesen Vorgang SOL_SOCKET .
-
optname [in]
-
Die Socketoption, für die der Wert abgerufen werden soll. Verwenden Sie für diesen Vorgang SO_BSP_STATE .
-
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 verweisen, der der Größe einer CSADDR_INFO-Struktur entspricht oder größer 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 null zurück.
Wenn der Vorgang fehlschlägt, wird der Wert SOCKET_ERROR zurückgegeben, und ein bestimmter Fehlercode kann durch Aufrufen von WSAGetLastError abgerufen werden.
Fehlercode | Bedeutung |
---|---|
Vor der Verwendung dieser Funktion muss ein erfolgreicher WSAStartup-Aufruf erfolgen. |
|
Beim Netzwerksubsystem ist ein Fehler aufgetreten. |
|
Einer der optval - oder optlen-Parameter verweist auf den Speicher, 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 verweist, kleiner als die Größe einer CSADDR_INFO-Struktur ist. |
|
Ein blockierter Windows Sockets 1.1-Aufruf wird ausgeführt, oder der Dienstanbieter verarbeitet weiterhin eine Rückruffunktion. |
|
Der Levelparameter ist unbekannt oder ungültig. |
|
Die Option ist unbekannt oder wird von der angegebenen Protokollfamilie nicht unterstützt. |
|
Der Deskriptor ist kein Socket. |
Bemerkungen
Die getockopt-Funktion , die mit der Option SO_BSP_STATE Socket 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 (AF_INET6- und AF_INET Adressfamilien).
Wenn die getockopt-Funktion erfolgreich ist, werden die Informationen in einer CSADDR_INFO Struktur im Puffer zurückgegeben, auf den der optval-Parameter verweist. Die ganze Zahl, auf die von optlen verwiesen wird, sollte ursprünglich die Größe dieses Puffers enthalten. Bei der Rückgabe wird die Länge des im optval-Parameter zurückgegebenen Werts in Bytes festgelegt.
Die Elemente 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 das LocalAddr-Element der zurückgegebenen CSADDR_INFO-Struktur auf eine SOCKADDR-Struktur festgelegt, die die lokale Adresse und den lokalen Port darstellt. Wenn sich der Socket in einem verbundenen Zustand befindet, wird das RemoteAddr-Element 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 das LocalAddr-Element der zurückgegebenen CSADDR_INFO Struktur mit einem NULL-Zeiger im lpSockaddrdr-Element und dem iSockaddrLength-Member auf 0 festgelegt. Wenn sich der Socket nicht in einem gebundenen Zustand befindet, wird das RemoteAddr-Element der zurückgegebenen CSADDR_INFO-Struktur mit einem NULL-Zeiger im lpSockaddr-Element zurückgegeben, und das iSockaddrLength-Element ist auf 0 festgelegt.
Wenn die getockopt-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 Ws2def.h-Headerdatei automatisch in Winsock2.h enthalten ist und nie direkt verwendet werden sollte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
Header |
|
Siehe auch