Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/09/2014, 02:12
tukymix
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sockets Multicliente

Aham, ok !!! Y tu podrias, ya sabiendo lo que necesito, podrias aplicarmelo en el script de arriba ? Esque eso es un ejemplo que vi en internet, y como yo nose mucho de java, no me aclaro en aplicar el metodo del for que recorra el list y envie el mensaje. He visto este link: http://stackoverflow.com/questions/1...to-all-sockets y ahi esta como implementar una lista añadiendo clientes dentro del while y ademas en el Script Server de un usuario que respondió, tiene dentro del script esto:
Código Java:
Ver original
  1. protected void sendMessage(String message) {
  2.             outputWriter.println(message);
  3.         }
  4.  
  5.         private void sendToAnyone(String message) {
  6.  
  7.             for (ConnectionService connection : connections) {
  8.                 connection.sendMessage(message);
  9.             }
  10.         }

que es lo que me gustaria implementar en mi codigo, porque entiendo que una es la funcion que recorre todo el list en este caso llamado connections, y el otro envia el mensaje con outputWriter, la cosa es que no se, siempre me da errores por un sitio u otro, tu podrias arreglarmelo ? Mira, lo acabo de hacer asi, nose si esta bien o mal, unicamente me da un error en el listaclientes del "private void sendToAnyone(String message)" porque listaclientes esta detro del "public class MultiEchoServer", aqui dejo el script modificado como lo he echo yo, he incluido dentro del while el "listaclientes.add(escucha);", echale un vistazo:

Código Java:
Ver original
  1. public class MultiEchoServer
  2. {
  3.     private static ServerSocket ServidorSocket;
  4.     private static final int Puerto = 1121;
  5.     private static List<ClienteEscucha> listaclientes = new ArrayList<ClienteEscucha>();
  6.    
  7.     public static void main(String[] args) throws IOException{
  8.         try{ ServidorSocket = new ServerSocket(Puerto); }
  9.         catch (IOException e){
  10.             System.out.println("No se puede establecer conexion con el puerto!\n");
  11.             System.exit(1);
  12.         }
  13.  
  14.         do{
  15.             //En espera de un nuevo cliente
  16.             Socket cliente = ServidorSocket.accept();
  17.            
  18.             System.out.println("Nuevo cliente aceptado.\n");
  19.            
  20.             ClienteEscucha escucha = new ClienteEscucha(cliente);
  21.             escucha.start();
  22.            
  23.             listaclientes.add(escucha);
  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(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 del servidor...\n");
  68.                     cliente.close();
  69.                 }
  70.             }
  71.             catch(IOException e){
  72.                 e.printStackTrace();
  73.             }
  74.         }
  75.     }
  76.    
  77.     protected void sendMessage(String message) {
  78.         salida.println(message);
  79.     }
  80.  
  81.     private void sendToAnyone(String message) {
  82.  
  83.         for (ClienteEscucha connection : listaclientes) {
  84.             connection.sendMessage(message);
  85.         }
  86.     }
  87. }

Última edición por tukymix; 24/09/2014 a las 02:37