Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2013, 11:35
jonasgv
 
Fecha de Ingreso: julio-2012
Ubicación: Madrid
Mensajes: 95
Antigüedad: 11 años, 9 meses
Puntos: 2
Crear Socket en Java a través de Wifi

Buenas tardes.

Tengo una aplicación en Java que usa modelo cliente/servidor.
Arrancando los clientes y el servidor en red local lo hace todo correctamente.
Sin embargo, si uso la conexión Wifi para hacer dicha conexión no se produce.

El código que uso para crear la conexión en el cliente es el siguiente:

Código:
private Socket conexion;
private ObjectInputStream entradaRed;
private ObjectOutputStream salidaRed;

public void ejecutar(String direccion, int puerto) { 
        // Aquí lo suyo sería comprobar que los valores de dirección y puerto son razonables
        if (direccion == null)
            throw new IllegalArgumentException("No se puede crear un medio controlador de cliente conectado a una dirección IP nula.");        

        try {
            // 1. Enviar petición de conexión al servidor   
            conexion = new Socket(direccion, puerto);
            // IMPORTANTE: Como en el servidor se crea primero el ObjectOutputStream, aquí se hace justo al revés: se crea primero el ObjectInputStream. ¡Si no se hace así, se produce un bloqueo!
            entradaRed = new ObjectInputStream(conexion.getInputStream());
            salidaRed = new ObjectOutputStream(conexion.getOutputStream());      
        } catch (IOException e) { 
            System.err.println("ERROR: No se puede establecer conexión con el servidor.");
            System.exit(1);
        } finally {
            try {
                // Se cierran los recursos en el orden contrario al que los hemos abierto
                salidaRed.close();
                entradaRed.close();
                conexion.close();  
            } catch (IOException ex) {
                System.err.println("ERROR: No se ha podido cerrar la conexión con el servidor.");
                System.exit(1);
            }             
        }
¿Alguna idea de cómo hacerlo o dónde puedo encontrar documentación?