Pergunta

Como devo determinar o que usar para o parâmetro backlog de um soquete de escuta? É um problema simplesmente especificar um número muito grande?

Foi útil?

Solução

A partir da docs :

Um valor para o acúmulo de SOMAXCONN é uma constante especial que instrui o provedor de serviços subjacente responsável pela tomada de s para definir o comprimento da fila de conexões pendentes para um valor máximo razoável.

Outras dicas

Há um tempo muito longo resposta a esta no Winsock do programador FAQ . Ele detalha a configuração padrão, e o recurso de registro posterior dinâmico acrescentou em um hotfix para NT 4.0.

Eu segundo usando SOMAXCONN, a menos que você tenha um motivo específico para usar uma fila curta.

Tenha em mente que, se não há espaço na fila para uma nova conexão, não RST será enviado, permitindo que o cliente automaticamente continuam tentando se conectar através da retransmissão SYN.

Além disso, o argumento backlog pode ter significados diferentes em diferentes implementações de soquete.

  • Na maioria isso significa que o tamanho da fila de conexões semi-aberto, de alguma isso significa que o tamanho da fila de conexão completada.
  • Em muitas implementações, o argumento de atraso irá multiplicado para se obter um comprimento de fila diferente.
  • Se for especificado um valor que é muito grande, todas as implementações silenciosamente truncar o valor de comprimento máximo da fila de qualquer maneira.

Como um aviso para qualquer pessoa usando impulso asio, o valor SOMAXCONN é usado como 5 com impulso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top