Chat , travando usando uma interface?!

Estou fazendo um CHAT usando sockets etc…etc…

Fiz um interface p/ o servidor outro p/ o cliente esta funcionando, tudo certo!

Agora eu criei um frame, com menu p/ chamar o cliente e o servidor.

O problema está ai, quando eu chamo o cliente ou o servidor o programa trava!!.

Uma parte do código quando eu clico no botão <SERVIDOR> p/ abrir a tela do servidor.

[color=red]servidor.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Servidor application = new Servidor(“SERVIDOR”);
application.runServer();
}
});[/color]

Alguem sabe como resolvo isso?!!

Cara, o programa “trava” porque você está fazendo uma chamada síncrona. O seu servidor precisa trabalhar em uma thread para você conseguir continuar executando o sistema.

Sim, mas no meu servidor esta usando Thread.

Quando eu executo ele no método main, esta funcionando tudo certo, o problema e só esse quando eu chamo ele em outro frame!!

A pergunta é: esse método application.runServer(), ele retorna ou fica ativo?

Abraço,

Armando

Ele fica ativo.
[color=darkred]
public void runServer() {
try // set up server to receive connections; process connections
{
server = new ServerSocket(12345, 100); // create ServerSocket

		while (true) {
			try {
				waitForConnection(); // wait for a connection
				getStreams(); // get input & output streams
				processConnection(); // process connection
			} // end try
			catch (EOFException eofException) {
				displayMessage("\nServer terminated connection");
			} // end catch
			finally {
				closeConnection(); //  close connection
				counter++;
			} // end finally
		} // end while
	} // end try
	catch (IOException ioException) {
		ioException.printStackTrace();
	} // end catch
} // end method runSe[/color]

Então… é esse o problema… na verdade, o programa não “trava”, ele está simplesmente aguardando o método retornar, o que não acontece. Ou você tem que fazer esse server ser um runnable ou tem que abrir uma thread e no run dela instanciar e rodar o servidor.

Abraço,

Armando