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 |
---|---|
Uma chamada WSAStartup bem-sucedida deve ocorrer antes de usar essa função. |
|
O subsistema de rede falhou. |
|
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 . |
|
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. |
|
O parâmetro de nível é desconhecido ou inválido. |
|
A opção é desconhecida ou não tem suporte da família de protocolos indicada. |
|
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 |
|
Confira também