Sockets

Iniciado por Choclito, 9 Noviembre 2011, 18:55 PM

0 Miembros y 1 Visitante están viendo este tema.

Choclito

hola a todos en internet estuve navegando y encontre este ejercicio en java lo que trata con sockets pero ahora me dio la curiosidad k con  la direc ip enviamos mensajes la tarea es k el servidor pueda recepcionar el envio de 3 maquina.

tendria que usar hilos ?

SERVIDOR

Código (java) [Seleccionar]
public static void main(String[] args) throws IOException {
        // TODO code application logic here
        ServerSocket servidor_UTEA=new ServerSocket(5000);
        System.out.println("Servidor Iniciando");
        Socket cliente=servidor_UTEA.accept();
        DataInputStream leer=new DataInputStream(cliente.getInputStream());
        System.out.println("El mensaje recibido fue : " + leer.readUTF());
        cliente.close();
       

    }


CLIENTE
Código (java) [Seleccionar]

  public static void main(String[] args) throws IOException {
        // TODO code application logic here
      Socket cliente=new Socket("10.0.1.82",5000);
      System.out.println("Cliente Iniciado");
      DataOutputStream envio=new DataOutputStream(cliente.getOutputStream());
      envio.writeUTF("hola amigos del Foro el Hacker.net:");     

  }

Debci

Sería muy interesante que usaras hilos si pretendes que tu servidor atienda a mas de un cliente:
-Si el bucle principal tiene que cargar continuamente con muchas conexiones, las últimas de la rutina se ralentizarán.
-Si el bucle principal se muere a causa de un socket en mal estado o da excepción, perjudicas a los demás.
-Si quieres poder controlar todos uno por uno e intervenir directamente en sus rutinas de forma independiente e individual, deberías usar sockets.

Espero haberte ayudado.

Esperamos tus dudas con mucho gusto :)

Saludos

adastra

Considero que el uso de hilos, más que una posibilidad, es un deber, principalmente porque no vas a recibir peticiones de forma secuencial y "ordenada", sino que van a llegar peticiones de varios clientes de forma concurrente y debes garantizar que las peticiones son atendidas en tiempos adecuados, (no querras que alguno de ellos muera de inanición  :P) Por ese motivo si utilizas Sockets, debes usar hilos tambien para cada nueva petición, es lo que se llama "forking" de procesos, lo hace cualquier servidor que acepte conexiones de clientes remotos independiente de sus naturaleza.

Choclito

Bueno Gracias a Tdos si es programacion concurrente kreo y ese Hilos lo voy a implementar ahi mismo en ese metodo principal oh crear una Clase ?

Choclito

Ya lo Soluciones y Gracias a Todos xD... !