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.