Dúvida cruel - Como saber quem é Cliente

1 resposta
H

Tenho uma dúvida que realmente esta complicadíssima de ser resolvida.

Estou fazendo um simples chat, cliente e servidor, porém, como eu mando uma mensagem para um determinado cliente, visto que todos estao numa thread no servidor.

Eu fiz assim para cada cliente que se conecta

clientOutputStreams = new ArrayList();

PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());

clientOutputStreams.add(writer); //manda todos clientes pra um arrayList

Ok, se quero mandar uma mensagem para todos

Iterator it = clientOutputStreams.iterator();
                   while (it.hasNext()) {
                         try {
                             PrintWriter writer = (PrintWriter) it.next(); //referenciar o tipo de objeto que tem 
                                                                           //no ArrayList e manda a mensagem para
                                                                           //cada um dos clientes que estao armazenados
                                                                           //em clientOutputStreams
                             writer.println(message); //envia message para um cliente
                             writer.flush(); //esvazia o buffer e envia todas msgs para o destino
                         catch(Exception ex) {ex.printStackTrace();}

Ok Ok, manda a mensagem para todos, porém como vou mandar para apenas um cliente??

Alguém tem outras ideias? Já me disseram para mandar para a porta do cliente, mas testei e não deu certo.

Agradeço quem puder ajudar.

1 Resposta

italo.vendrameto

se vc usar um Map no lugar do ArrayList com um nome como identificação acho que fica mais facil recuperar o objeto PrintWriter do client desejado

Criado 30 de setembro de 2007
Ultima resposta 1 de out. de 2007
Respostas 1
Participantes 2