Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2014, 03:56
tukymix
Invitado
 
Mensajes: n/a
Puntos:
Sockets Multicliente

Buenos Dias !!!

Tengo este script de un Servidor el cual me gustaria que me ayudaseis a implementar unas cosas....

1º Necesito que guarde en un list todos los clientes que se conecten y cuando se desconecten pues que lo borre de list.
2º Implementar un for o algo el cual recorra todo ese list para mandar a todos los clientes conectados un string.

Alguien podria ayudarme ? Gracias de Antemano

Código Java:
Ver original
  1. import java.io.*;
  2. import java.net.*;
  3.  
  4. public class MultiEchoServer
  5. {
  6.     private static ServerSocket ServidorSocket;
  7.     private static final int Puerto = 1234;
  8.  
  9.     public static void main(String[] args) throws IOException{
  10.         try{ ServidorSocket = new ServerSocket(Puerto); }
  11.         catch (IOException e){
  12.             System.out.println("\nNo se puede establecer conexion con el puerto!");
  13.             System.exit(1);
  14.         }
  15.  
  16.         do{
  17.             //En espera de un nuevo cliente
  18.             Socket cliente = ServidorSocket.accept();
  19.  
  20.             System.out.println("\nNuevo cliente aceptado.\n");
  21.            
  22.             ClienteEscucha escucha = new ClienteEscucha(cliente);
  23.             escucha.start();
  24.            
  25.         }while (true);
  26.     }
  27. }
  28.  
  29. class ClienteEscucha extends Thread{
  30.     private Socket cliente;
  31.     private BufferedReader entrada;
  32.     private PrintWriter salida;
  33.  
  34.     public ClienteEscucha(Socket socket){
  35.         cliente = socket;
  36.  
  37.         try{
  38.             entrada = new BufferedReader(new InputStreamReader(cliente.getInputStream()));
  39.             salida = new PrintWriter(cliente.getOutputStream(),true);
  40.         }
  41.         catch(IOException e){
  42.             e.printStackTrace();
  43.         }
  44.     }
  45.  
  46.     public void run()
  47.     {
  48.         try{
  49.             String recibido;
  50.            
  51.             do{
  52.                
  53.                 recibido = entrada.readLine();
  54.                
  55.                 salida.println("ECHO: " + recibido);
  56.  
  57.             }while (!recibido.equals("QUITAR"));
  58.         }
  59.  
  60.         catch(IOException e){
  61.             e.printStackTrace();
  62.         }
  63.        
  64.         finally{
  65.             try{
  66.                 if (cliente!=null){
  67.                     System.out.println("Cerrando la conexion...");
  68.                     cliente.close();
  69.                 }
  70.             }
  71.             catch(IOException e){
  72.                 e.printStackTrace();
  73.             }
  74.         }
  75.     }
  76. }

Última edición por tukymix; 23/09/2014 a las 10:56