Chat em java, problemas em add clientes!

Oi pessoal;
Estou tentando desenvolver um chat em java. Na parte do servidor, ao aceitar novos clientes, a aplicação trava! Não retorna erro algum…

aqui é onde adiciono clientes:

        ServerSocket servidor = new ServerSocket(this.porta);
        jtxtM1.append("Porta 12345 aberta! \n");

        while (!encerrar)
        {
        //aceita um cliente
           Socket cliente = servidor.accept();          

Se eu deixar apenas a parte anterior ao while vai certinho, mas a partir disso já trava :confused:
Oq pode ser??? :oops:

Cara Lana Csil,

Não tenho certeza, mas acredito que o seu codigo trava devido a um loop eterno no while, você verificou se a condições para sair é atendida em algum momento, se não foi quando chega a execução a este pedaço ela fica presa no loop do while e não sai mais, ai trava mesmo a sua aplicação, faz um teste simples, coloca um system.out.println(“loop while”) dentro do while e coloca um fora com “saiu do loop”, ai você já sabe se esta saindo do loop ou não.

Nada que demore pode ser feito na mesma thread do Swing. Por exemplo, accept demora (porque espera alguém fazer uma conexão), portanto não pode estar na mesma thread do Swing.

entanglement;
não entendi oq vc quis dizer, sou muito goof em java ainda! De qualquer maneira eu retirei o accept do while , pois é realmente desnecessário ficar entrando ali :confused:

willCesar;
fiz o teste o problema era um loop eterno mesmo, obrigada pela “luz” :wink:

Pessoal!

Alterei meu código da seguinte maneira:

try{
        ServerSocket servidor = new ServerSocket(this.porta);
        jtxtConectados.append("Porta 12345 aberta! \n");

        //aceita um cliente
         Socket cliente = servidor.accept();
//         jtxtConectados.append("Nova conexão com o cliente " + cliente.getInetAddress().getHostName() + "\n");
//         //adiciona a saída do cliente da lista
//         PrintStream ps = new PrintStream(cliente.getOutputStream());
//         this.clientes.add(ps);
         return true;

        }catch(IOException e){
           e.getMessage();
        return false;
        }

Abaixo da parte de aceitar o cliente esta em comentario pois fiz alguns testes e descobri que a aplicação trava ali! Oq pode ser?
Outra coisa, eu não sei trabalhar com exceptions, poderiam me dizer se meu catch esta correto?
Att;