Hola soy un poco nueva en ésto. Tenemos que implementar un chat en Java para 5 clientes. Por ahora lo que he conseguido es que el servidor hable con el cliente todo lo que quiera. Tengo un server_main en el que cada vez que se conecta un cliente se crea un Server_Thread que es el que "habla" con el cliente. Es decir por cada Cliente que instancio se instancia un Server_Thread.
Lo que no sé es cómo conseguir que el mensaje que manda un cliente se envíe al resto. Supongo que tengo que tener un arraylist de Server_Thread? la verdad que he intentado mogollón de cosas y no sé por donde cogerlo. Os dejo las clases.
Hay un lanzador del Server que lo único que hace es instanciar un Server_Main y arrancarlo y un Lanzador de Cliente que instancia el cliente.
y luego
SERVER_MAIN
Código Java:
Ver originalimport java.net.*;
import java.util.ArrayList;
import java.io.*;
//Clase con los atributos, constructores del Socket, server, etc.
public class Server_Main {
protected Socket clientSocket
; private int port = 5000;
public static ArrayList<Server_Thread> clientes = new ArrayList<Server_Thread>(); ;
public Server_Main() {
}
public Server_Main(int port) {
this.port = port;
}
System.
out.
println("inicio del socket"); LazadorClientesEnThread();
}
public int strart1() {
System.
out.
println("inicio del socket"); try {
LazadorClientesEnThread();
return 1;
return 0;
System.
err.
println("Could not listen on port:" + port
); }
return -1;
}
public void LazadorClientesEnThread() {
try {
while (true) {
System.
out.
println("llega una nueva conexion"); Server_Thread temp = new Server_Thread(serverSocket.accept());
clientes.add(temp);
temp.start();
}
System.
err.
println("Accept failed."); }
}
System.
out.
println("Fin del socket"); try {
serverSocket.close();
System.
err.
println("Could not listen on port:" + port
); }
}
}
Continuo en otro post