Não é possível ligar à porta, mesmo que o tcpview diga que não está em uso

5

De vez em quando, ao tentar iniciar o meu servidor de aplicativos Java na minha caixa WinXP, ele falha ao iniciar com um erro "Endereço já em uso" ao tentar ouvir em uma porta. A solução usual para mim é ativar o tcpview (do sysinternals), ver o que está usando essa porta, matar esse processo e, em seguida, tentar novamente. Funciona 99% do tempo.

Os 1% restantes, no entanto, isso não funciona. O appserver insiste que a porta (por exemplo, a porta 1099, não que isso importe) está em uso, e o tcpview insiste igualmente que não está.

O appserver está apenas delegando a criação do soquete do servidor para o Windows, por isso não posso ver isso como um problema específico do Java, embora eu esteja feliz em ser corrigido sobre isso.

O que dá? O tcpview está perdendo algum caso de esquina? Existe uma ferramenta melhor que me ajudaria a diagnosticar essas situações?

    
por skaffman 12.10.2009 / 10:54

2 respostas

1

Estranho. Para identificar o problema, você pode tentar

netstat -an

Isso também deve listar todas as portas em uso. Se não estiver de acordo, o problema pode estar no tcpview. Caso contrário, você teria que procurar em outro lugar.

    
por 12.10.2009 / 12:46
1

além disso, você pode tentar

netstat -ano

para encontrar o ProcessID e reduzi-lo um pouco, supondo que sua porta seja 8191

netstat -ano | find "8191"
    
por 12.10.2009 / 12:54