Função de retorno de chamada LPWSPLISTEN (ws2spi.h)
A função LPWSPListen estabelece um soquete para escutar conexões de entrada.
Sintaxe
LPWSPLISTEN Lpwsplisten;
int Lpwsplisten(
[in] SOCKET s,
[in] int backlog,
[out] LPINT lpErrno
)
{...}
Parâmetros
[in] s
Descritor que identifica um soquete associado e não conectado.
[in] backlog
Comprimento máximo para o qual a fila de conexões pendentes pode aumentar. Se esse valor for SOMAXCONN, o provedor de serviços deverá definir a lista de pendências como um valor máximo "razoável". Não há nenhuma provisão padrão para descobrir o valor real da lista de pendências.
[out] lpErrno
Ponteiro para o código de erro.
Retornar valor
Se nenhum erro ocorrer, LPWSPListen retornará zero. Caso contrário, um valor de SOCKET_ERROR será retornado e um código de erro específico estará disponível no lpErrno.
Código do Erro | Significado |
---|---|
O subsistema de rede falhou. | |
O endereço local do soquete já está em uso e o soquete não foi marcado para permitir a reutilização de endereço com SO_REUSEADDR. Esse erro geralmente ocorre no momento de Bind, mas pode ser adiado até essa função se o **bind** estiver em um endereço parcialmente curinga (envolvendo ADDR_ANY) e se um endereço específico precisar ser confirmado no momento dessa função. | |
A função é invocada quando um retorno de chamada está em andamento. | |
O soquete não foi associado ao LPWSPBind. | |
O soquete já está conectado. | |
Nenhum descritor de soquete disponível. | |
Nenhum espaço de buffer disponível. | |
O descritor não é um soquete. | |
O soquete referenciado não é de um tipo que dá suporte à operação LPWSPListen . |
Comentários
Para aceitar conexões, um soquete é criado primeiro com LPWSPSocket associado a um endereço local com LPWSPBind, uma lista de pendências para conexões de entrada é especificada com LPWSPListen e, em seguida, as conexões são aceitas com LPWSPAccept. LPWSPListen aplica-se somente a soquetes orientados para conexão (por exemplo, SOCK_STREAM). Os soquetes são colocados no modo passivo em que as solicitações de conexão de entrada são reconhecidas e enfileiradas até a aceitação pelo cliente SPI do Windows Sockets.
Essa função normalmente é usada por servidores que podem ter mais de uma solicitação de conexão por vez: se uma solicitação de conexão chegar com a fila cheia, o cliente receberá um erro com uma indicação de WSAECONNREFUSED.
LPWSPListen deve continuar funcionando racionalmente quando não houver descritores disponíveis. Ele deve aceitar conexões até que a fila seja esvaziada. Se os descritores estiverem disponíveis, uma chamada posterior para LPWSPListen ou LPWSPAccept recarregará a fila para a lista de pendências atual ou mais recente, se possível, e retomará a escuta para conexões de entrada.
Um cliente SPI do Windows Sockets pode chamar LPWSPListen mais de uma vez no mesmo soquete. Isso tem o efeito de atualizar a lista de pendências atual para o soquete de escuta. Se houver mais conexões pendentes do que o novo valor de lista de pendências, o excesso de conexões pendentes será redefinido e descartado.
O parâmetro de lista de pendências é limitado (silenciosamente) a um valor razoável, conforme determinado pelo provedor de serviços. Valores ilegais são substituídos pelo valor legal mais próximo. Não há nenhuma provisão padrão para descobrir o valor real da lista de pendências.
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] |
Cabeçalho | ws2spi.h |