Pergunta

Às vezes (muito raramente) quando eu ligar a uma instância em execução de um com.sun.net.httpserver.HttpServer eu recebo uma "conexão recusada" mensagem de volta.

Alguém sabe por que isso pode ser? Existe um limite de thread para o número de conexões que ele pode manipular? I pode aumentá-lo? Obrigado. -r

Foi útil?

Solução

De o doc :

Quando se liga a um endereço e porta número, a aplicação também pode especificar um parâmetro inteiro backlog. Isso representa o número máximo de ligações TCP de entrada que o sistema irá fila internamente. Conexões são enfileiradas enquanto eles estão à espera de ser aceite pelo Httpserver. Quando o limite for atingido, mais ligações podem ser rejeitadas (Ou possivelmente ignorado) pela implementação TCP subjacente. Configuração o valor backlog direita é um compromisso entre eficiente dos recursos uso na camada TCP (não defini-lo demasiado alta) e permitindo adequada rendimento de solicitações de entrada (não definindo-o muito baixo).

Você pode estar vendo isso.

Como alternativa , tem de definir um executor usando setExecutor () . O executor padrão pode ter menos tópicos configurado do que você precisa, e uma adequadamente configurado ThreadPoolExecutor pode funcionar.

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