Ver Mensaje Individual
  #6 (permalink)  
Antiguo 03/01/2011, 12:29
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Sockets en java

Hola,

Cita:
Iniciado por posman Ver Mensaje
Cuando ejecutas readLine (o el metodo que utilices para leer datos) y se lanza una excepcion IOException significa que no se pudo ejecutar el metodo, generalmente esto sucede porque el socket esta desconectado.
Exactamente, el InputStream.read() bloquea hasta que se cierra el stream.

Posiblemente, en el servidor crea un Thread (para no bloquear las siguientes conexiones) que se mantenga conectado pero el cliente no envíe nada de información, cuando se cierre el socket devuelve -1 o tira una exception.

Código Java:
Ver original
  1. protected void run() {
  2.   byte result = -1;
  3.   try {
  4.     result = in.read(); // bloquea y espera hasta que reciba un byte
  5.                                  // o se desconecte u otros
  6.   } catch (IOException e) {
  7.     result = -1;
  8.   }
  9.   // Cuando llegue aquí el socket está cerrado.
  10.   // Y result es -1.
  11. }
Saludos,