SO_BSP_STATE opção de soquete

A opção de soquete SO_BSP_STATE retorna o endereço local, a porta local, o endereço remoto, a porta remota, o tipo de soquete e o protocolo usados por um soquete.

Para executar essa operação, chame a função getsockopt com os parâmetros a seguir.

Valor da opção de soquete

A constante que representa essa opção de soquete é 0x1009.

Sintaxe

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]

Um descritor que identifica o soquete.

level [in]

O nível no qual a opção é definida. Use SOL_SOCKET para esta operação.

optname [in]

A opção de soquete para a qual o valor deve ser recuperado. Use SO_BSP_STATE para esta operação.

optval [out]

Um ponteiro para o buffer no qual o valor da opção solicitada deve ser retornado. Esse parâmetro deve apontar para buffer igual ou maior que o tamanho de uma estrutura de CSADDR_INFO .

optlen [in, out]

Um ponteiro para o tamanho, em bytes, do buffer optval . Esse tamanho deve ser igual ou maior que o tamanho de uma estrutura CSADDR_INFO .

Valor retornado

Se a operação for concluída com êxito, getsockopt retornará zero.

Se a operação falhar, um valor de SOCKET_ERROR será retornado e um código de erro específico poderá ser recuperado chamando WSAGetLastError.

Código do erro Significado
WSANOTINITIALISED
Uma chamada WSAStartup bem-sucedida deve ocorrer antes de usar essa função.
WSAENETDOWN
O subsistema de rede falhou.
WSAEFAULT
Um dos parâmetros optval ou optlen apontam para a memória que não está em uma parte válida do espaço de endereço do usuário. Esse erro também será retornado se o valor apontado pelo parâmetro optlen for menor que o tamanho de uma estrutura CSADDR_INFO .
WSAEINPROGRESS
Uma chamada de bloqueio do Windows Sockets 1.1 está em andamento ou o provedor de serviços ainda está processando uma função de retorno de chamada.
WSAEINVAL
O parâmetro de nível é desconhecido ou inválido.
WSAENOPROTOOPT
A opção é desconhecida ou não tem suporte da família de protocolos indicada.
WSAENOTSOCK
O descritor não é um soquete.

 

Comentários

A função getsockopt chamada com a opção de soquete SO_BSP_STATE recupera o endereço local, a porta local, o endereço remoto, a porta remota, o tipo de soquete e o protocolo usados por um soquete. A opção de soquete SO_BSP_STATE funciona com soquetes IPv6 ou IPv4 (as famílias de endereços AF_INET6 e AF_INET ).

Se a função getsockopt for bem-sucedida, as informações serão retornadas em uma estrutura CSADDR_INFO no buffer apontado pelo parâmetro optval . O inteiro apontado por optlen deve conter originalmente o tamanho desse buffer; no retorno, ele será definido como o comprimento, em bytes, do valor retornado no parâmetro optval .

Os membros iSocketType e iProtocol na estrutura de CSADDR_INFO retornada são preenchidos para o descritor de soquete no parâmetro s .

Se o soquete estiver em um estado conectado ou associado, o membro LocalAddr da estrutura de CSADDR_INFO retornada será definido como uma estrutura SOCKADDR que representa o endereço local e a porta. Se o soquete estiver em um estado conectado, o membro RemoteAddr da estrutura de CSADDR_INFO retornada será definido como uma estrutura SOCKADDR que representa o endereço remoto e a porta.

Se o soquete não estiver em um estado conectado ou associado, o membro LocalAddr da estrutura de CSADDR_INFO retornada será retornado com um ponteiro NULL no membro lpSockaddr e o membro iSockaddrLength definido como zero. Se o soquete não estiver em um estado associado, o membro RemoteAddr da estrutura de CSADDR_INFO retornada será retornado com um ponteiro NULL no membro lpSockaddr e o membro iSockaddrLength definido como zero.

Se a função getsockopt falhar, os parâmetros optval e optlen ficarão inalterados e o parâmetro optval não apontará para uma estrutura de CSADDR_INFO retornada.

Observe que o arquivo de cabeçalho Ws2def.h é incluído automaticamente no Winsock2.h e nunca deve ser usado diretamente.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho
Ws2def.h (inclua Winsock2.h)

Confira também

Getsockopt

CSADDR_INFO

SOCKADDR