Não é necessariamente a JVM que pode estar usando tal porta. Outra aplicação qualquer (banco de dados, servidor de aplicação, algum serviço do seu sistema operacional) pode estar carregada nesta porta. Dica: procure usar portas com números maiores do que 1024.
_fs
Valeu pelo reply cara, mas o problema não é esse, não expliquei direito.
Eu executo com a porta 5000 por exemplo, e ele roda normal. Se eu fechar a aplicação e abri-la novamente, este erro acontece.
Então eu mudo a porta e executo. Se fechar e tentar rodar de novo, dá o mesmo erro
Daniel_Quirino_Olive
Posta o seu código aí. Mas você fecha o seu socket quando sua aplicação é finalizada?
caiofilipini
Bom, eu não tenho certeza, mas pelo jeito, a conexão na tal porta não está sendo fechada… :roll:
cariocathi
entao o problema he q qnd vc fecha a aplicacao, vc nao esta terminando-a.
_fs
Deve ser isso mesmo :mrgreen:
Um System.out( 0 ) não resolve pelo jeito, ne?
caiofilipini
Tem que chamar o método close().
[]'s
_fs
Valeu!
_fs
Ok, agora o erro é pior … não importa a porta que eu coloque ( números totalmente bizarros, mas dentro do range, claro ) ele acusa o mesmo erro.
Não consigo nem executar o Server =|
Alguém sabe o que pode estar acontecendo?
cv1
Tente postar aqui o menor trecho de codigo que consiga reproduzir esse erro
Meu deus!! Você tem que dar um close() no seu ServerSocket quando a aplicação fechar .
_fs
Eu coloquei hehe só tirei umas partes para não ficar muito gigante aqui.
Então, não é igual ao problema anterior, ele simplesmente não aceita.
E outro serverzinho mais simples que tenho aqui abre normal com qualquer porta que não funciona neste que eu postei … por isso que estou ficando louco
louds
O socket é fechado junto com a VM.
Você não tá setando a flag SO_REUSE_ADDR, ou com nome parecido, do ServerSocket, sem isso a porta fica bloqueada para bind por alguns minutos depois da JVM morrer.
_fs
Valeu Louds, vou pesquisar sobre isso
_fs
Achei o erro … tão vendo o laço FOR que contém a criação do serversocket … entao …