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
WSANOTINITIALISED
Debe producirse una llamada de WSAStartup correcta antes de usar esta función.
WSAENETDOWN
Error en el subsistema de red.
WSAEFAULT
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 .
WSAEINPROGRESS
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.
WSAEINVAL
El parámetro level es desconocido o no válido.
WSAENOPROTOOPT
La opción es desconocida o no admitida por la familia de protocolos indicada.
WSAENOTSOCK
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
Ws2def.h (incluya Winsock2.h)

Consulte también

getsockopt

CSADDR_INFO

SOCKADDR