Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/05/2009, 10:30
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Problema al detectar si un cliente sigue conectado

Hola:

Si en el otro lado te han cerrado la conexión de forma correcta, el read() o el write() debería darte una excepción indicando esta circunstancia.

Si se ha perdido la conexión de forma inesperada, puede ayudarte si pones la opción setKeepAlive(true). Esta opción lo que hace es revisar periódicamente el socket por debajo, de forma que si la conexión se pierde de mala manera, cuando intentes hacer un read() o write() saltará una excepción inmediatamente.

El tiempo por defecto suele ser alto (2 horas), pero la configuración de este tiempo es propia del sistema operativo. Por ejemplo, en unix está en /proc/sys/ipv4/tcp_keepalive_time. Supongo que tendrás que hacer tus pruebas.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 27/05/2009 a las 10:35