SO_BSP_STATE opción de socket
La opción de socket SO_BSP_STATE devuelve la dirección local, el puerto local, la dirección remota, el puerto remoto, el tipo de socket y el protocolo usados por un socket.
Para realizar esta operación, llame a la función getsockopt con los parámetros siguientes.
Valor de opción de socket
La constante que representa esta opción de socket es 0x1009.
Sintaxis
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
);
Parámetros
-
s [in]
-
Descriptor que identifica el socket.
-
level [in]
-
Nivel en el que se define la opción. Use SOL_SOCKET para esta operación.
-
optname [in]
-
Opción de socket para la que se va a recuperar el valor. Use SO_BSP_STATE para esta operación.
-
optval [out]
-
Puntero al búfer en el que se va a devolver el valor de la opción solicitada. Este parámetro debe apuntar al búfer igual o mayor que el tamaño de una estructura de CSADDR_INFO .
-
optlen [in, out]
-
Puntero al tamaño, en bytes, del búfer optval . Este tamaño debe ser igual o mayor que el tamaño de una estructura de CSADDR_INFO .
Valor devuelto
Si la operación se completa correctamente, getockopt devuelve cero.
Si se produce un error en la operación, se devuelve un valor de SOCKET_ERROR y se puede recuperar un código de error específico llamando a WSAGetLastError.
Código de error | Significado |
---|---|
Debe producirse una llamada de WSAStartup correcta antes de usar esta función. |
|
Error en el subsistema de red. |
|
Uno de los parámetros optval o optlen apunta a la memoria que no está en una parte válida del espacio de direcciones del usuario. Este error también se devuelve si el valor al que apunta el parámetro optlen es menor que el tamaño de una estructura de CSADDR_INFO . |
|
Una llamada de Bloqueo de Windows Sockets 1.1 está en curso o el proveedor de servicios sigue procesando una función de devolución de llamada. |
|
El parámetro level es desconocido o no válido. |
|
La opción es desconocida o no admitida por la familia de protocolos indicada. |
|
El descriptor no es un socket. |
Observaciones
La función getockopt llamada con la opción de socket SO_BSP_STATE recupera la dirección local, el puerto local, la dirección remota, el puerto remoto, el tipo de socket y el protocolo que usa un socket. La opción de socket SO_BSP_STATE funciona con sockets IPv6 o IPv4 (las familias de direcciones AF_INET6 y AF_INET ).
Si la función getockopt es correcta, la información se devuelve en una estructura CSADDR_INFO del búfer a la que apunta el parámetro optval . El entero al que apunta optlen debe contener originalmente el tamaño de este búfer; al devolver, se establecerá en la longitud, en bytes, del valor devuelto en el parámetro optval .
Los miembros iSocketType e iProtocol de la estructura de CSADDR_INFO devuelta se rellenan para el descriptor de socket en el parámetro s .
Si el socket está en un estado conectado o enlazado, el miembro LocalAddr de la estructura de CSADDR_INFO devuelta se establecerá en una estructura SOCKADDR que representa la dirección local y el puerto. Si el socket está en un estado conectado, el miembro RemoteAddr de la estructura de CSADDR_INFO devuelta se establecerá en una estructura SOCKADDR que representa la dirección remota y el puerto.
Si el socket no está en un estado conectado o enlazado, el miembro LocalAddr de la estructura de CSADDR_INFO devuelta se devuelve con un puntero NULL en el miembro lpSockaddr y el miembro iSockaddrLength establecido en cero. Si el socket no está en un estado enlazado, el miembro RemoteAddr de la estructura de CSADDR_INFO devuelta se devuelve con un puntero NULL en el miembro lpSockaddr y el miembro iSockaddrLength establecido en cero.
Si se produce un error en la función getockopt , los parámetros optval y optlen se dejan sin cambios y el parámetro optval no apunta a una estructura de CSADDR_INFO devuelta.
Tenga en cuenta que el archivo de encabezado Ws2def.h se incluye automáticamente en Winsock2.h y nunca se debe usar directamente.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado |
|
Consulte también