Função WSARecvDisconnect (winsock2.h)
A função WSARecvDisconnect encerra a recepção em um soquete e recupera os dados de desconexão se o soquete é orientado para conexão.
Sintaxe
int WSAAPI WSARecvDisconnect(
[in] SOCKET s,
[out] LPWSABUF lpInboundDisconnectData
);
Parâmetros
[in] s
Um descritor que identifica um soquete.
[out] lpInboundDisconnectData
Um ponteiro para os dados de desconexão de entrada.
Retornar valor
Se nenhum erro ocorrer, WSARecvDisconnect retornará zero. Caso contrário, um valor de SOCKET_ERROR é retornado e um código de erro específico pode 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. | |
O buffer referenciado pelo parâmetro lpInboundDisconnectData é muito pequeno. | |
Os dados de desconexão não são compatíveis com a família de protocolos indicada. Observe que implementações de TCP/IP que não dão suporte a dados de desconexão não são necessárias para retornar o código de erro WSAENOPROTOOPT. Consulte a seção comentários para obter informações sobre a implementação da Microsoft de TCP/IP. | |
Uma chamada do Windows Sockets 1.1 de bloqueio está em andamento ou o provedor de serviços ainda está processando uma função de retorno de chamada. | |
O soquete não está conectado (somente soquetes orientados à conexão). | |
O descritor não é um soquete. |
Comentários
A função WSARecvDisconnect é usada em soquetes orientados à conexão para desabilitar a recepção e recuperar quaisquer dados de desconexão de entrada da parte remota. Isso é equivalente a um desligamento (SD_RECEIVE), exceto que o WSARecvDisconnect também permite o recebimento de dados de desconexão (em protocolos que dão suporte a ele).
Depois que essa função tiver sido emitida com êxito, os recebimentos subsequentes no soquete serão desautorizados. Chamar WSARecvDisconnect não tem efeito nas camadas de protocolo inferiores. Para soquetes TCP, se ainda houver dados enfileirados no soquete aguardando para serem recebidos ou os dados chegarem posteriormente, a conexão será redefinida, pois os dados não poderão ser entregues ao usuário. Para UDP, os datagramas de entrada são aceitos e enfileirados. Em nenhum caso será gerado um pacote de erro ICMP.
A função WSARecvDisconnect não fecha o soquete e os recursos anexados ao soquete não serão liberados até que closesocket seja invocado.
A função WSARecvDisconnect não bloqueia independentemente da configuração de SO_LINGER no soquete.
Um aplicativo não deve depender de ser capaz de reutilizar um soquete depois de ser desconectado usando WSARecvDisconnect. Em particular, um provedor do Windows Sockets não é necessário para dar suporte ao uso de connect ou WSAConnect em tal soquete.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winsock2.h |
Biblioteca | Ws2_32.lib |
DLL | Ws2_32.dll |