Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/03/2012, 06:37
Avatar de goncafa
goncafa
 
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 7 meses
Puntos: 10
Respuesta: Aplicaciones Cliente/Servidor

Cita:
Iniciado por aemaru08 Ver Mensaje
Hola a todos!
Se me ha ocurrido crear un hilo por cliente, pero se que siempre se debe evitar usar hilos.
No se de donde sacaste esa informacion, pero nada mas alejado de la realidad.

Muy por el contrario hoy por hoy debemos enfocar nuestras aplicaciones al suo de hilos ya que de otro modo perdemos la capacidad de usar mas de un nucleo en los procesadores.

Por otro lado desde mucho antes de la aparicion de los procesadores multi core ya se recomendaba aprovechar la capacidad del multithreading.

Respondiendo a tu pregunta usar hilos es exactamente lo que necesitas hacer.

Un ejemplo sencillo:
Código PHP:
ServerSocket server = new ServerSocket(9000);

while (
true) {
    
Socket client server.accept();
    
    new 
Thread(new ClientHandler(client)).start();

Luego la clase ClientHandler debe ser un hilo (extender a Thread o implementar Runnable) y en ella haces todo lo que se necesite con tu cliente.

Ejemplo:
Código PHP:
public class ClientHandler implements Runnable {
   private 
Socket client;

   public 
ClientHandler(Socket client) {
        
super();
        
this.client client;
    }

    public 
void run() {
        try {
            try {
                
this.client.getOutputStream().write(new String("Conexion correcta").getBytes());
            } catch (
IOException ioe) {
                 
ioe.printStackTrace();
            }
        } 
finally {
            try {
this.client.close();} catch (Exception e) {}
        }
    }

Espero esto te sea de ayuda.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo