Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2014, 12:49
educacanis
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 7 meses
Puntos: 12
Chat en Java para 5 clientes

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 original
  1. import java.net.*;
  2. import java.util.ArrayList;
  3. import java.io.*;
  4.  
  5.  
  6. //Clase con los atributos, constructores del Socket, server, etc.
  7. public class Server_Main {
  8.     protected Socket clientSocket;
  9.     private ServerSocket serverSocket = null;
  10.     private int port = 5000;
  11.    
  12.     public static ArrayList<Server_Thread> clientes = new ArrayList<Server_Thread>(); ;
  13.  
  14.     public Server_Main() {
  15.  
  16.     }
  17.  
  18.     public Server_Main(int port) {
  19.         this.port = port;
  20.     }
  21.  
  22.     public void strart() throws IOException {
  23.         System.out.println("inicio del socket");
  24.         this.serverSocket = new ServerSocket(port);
  25.         LazadorClientesEnThread();
  26.     }
  27.  
  28.     public int strart1() {
  29.         System.out.println("inicio del socket");
  30.         try {
  31.             this.serverSocket = new ServerSocket(port);
  32.             LazadorClientesEnThread();
  33.             return 1;
  34.         } catch (SocketException e) {
  35.             return 0;
  36.         } catch (IOException e) {
  37.             System.err.println("Could not listen on port:" + port);
  38.             System.exit(1);
  39.         }
  40.         return -1;
  41.     }
  42.  
  43.     public void LazadorClientesEnThread() {
  44.         try {
  45.             while (true) {
  46.                 System.out.println("llega una nueva conexion");
  47.                 Server_Thread temp = new Server_Thread(serverSocket.accept());
  48.                 clientes.add(temp);
  49.                 temp.start();
  50.             }
  51.         } catch (IOException e) {
  52.             System.err.println("Accept failed.");
  53.             System.exit(1);
  54.         }
  55.     }
  56.  
  57.     public void STOP() throws IOException {
  58.         System.out.println("Fin del socket");
  59.         try {
  60.             serverSocket.close();
  61.         } catch (IOException e) {
  62.             System.err.println("Could not listen on port:" + port);
  63.             System.exit(1);
  64.         }
  65.     }
  66. }

Continuo en otro post