Eu criei uma classe que extend Thread e cria o ServerSocket
server=newServerSocket(889,1);
Em outra classe eu instancio o class que cria o ServerSoket
Thread runBg = new runServer();
runBg.start();
Até ai está tudo Ok,ele cria o Socket e aguarda as conexoes, meu problema é que não sei como destruir o objeto server(ServerSocket) o qual é responsavél por criar o socket.
Eu gostária de distrui-lo para fechar todas as conexoes.
*PS destruir o ServerSocket não apenas fechar as conexoes abertas.
tah estranho
eu fiz um JButton com a opcao liberar/fechar a porta para conexoes,
qndo eu abro, fecho e tendo reabrir ele dispara a IOException
//- Qndo clica para fecharrunServerd=newrunServer();d.closeConnection();
//-na classe runServerpublicvoidcloseConnection(){try{connection.close();server=null;}catch(IOExceptione){System.out.println("Nao foi possivel fechar socket");}}
Oque será que está errado ?
M
morcegaoPJ
Só atribuir null não faz com que a variável seja excluída, faz apenas que seja “marcada” para o GarbageCollector. Não significa que ela vá ser excluída neste momento…
Não vejo por que fazer uma thread para um server socket… Qual a finalidade da aplicação? O que eu acho interessante é fazer um programa principal que abre a porta que se quiser e um loop infinito para aguardar conexões. O programa pode ser finalizado utilizando Ctrl+C, o que encerra todas as conexões…
Att
H
hroberPJ
O uso dah Thread é pelo sistema nao apenas aguardar conexoes, existe um GUI onde o usuário tem outras opcoes, por isso a Thread.
Meu objetivo é colocar m JButton com a opcao liberar porta / trancar porta, mas qndo libero e tranco novamente não consigo a liberar, pois o objeto ServerSocket não foi destruido.
Existe como eu expecificar ao GarbageCollector para remover da memoria o objeto ?