Estou com um probleminha,
Eu criei uma classe que extend Thread e cria o ServerSocket
server = new ServerSocket(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.
grato
para destruir qq objeto, faça ele receber null…
sever = null;
nota: as conexão devem ser fechadas antes!
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 fechar
runServer d = new runServer();
d.closeConnection();
//-na classe runServer
public void closeConnection()
{
try
{
connection.close();
server = null;
}
catch(IOException e)
{
System.out.println("Nao foi possivel fechar socket");
}
}
Oque será que está errado ?
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
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 ?
grato.