Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/08/2011, 12:11
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Detectar desconexión de socket?

Hola:

Un socket es una conexión muy segura una vez establecida y está pensada precisamente para "resistir" desconexiones por culpa del cable y todo eso. Si quitas el cable, pueden pasar varios minutos antes de que se de la conexión por perdida.

A nivel de sistema operativo, todos los envíos que haga tu programa se guardan en un buffer y es el sistema operativo el que se encarga de enviar esos datos por la red cuando pueda. Por eso, aunque quites el cable, tu programa puede seguir enviando (en apariencia) datos. Si sigues enviando datos y sin conectar el cable, en algún momento se llenará el buffer y obtendrás un error al intentar enviar.

Si quieres detectar más rápido la pérdida de cable, no te queda más remedio que hacer algún tipo de protocolo a nivel de aplicación, enviando un mensaje periódico cada x tiempo (segundos), de forma que si no se recibe, tu aplicación considere perdida la conexión.

Se bueno.
__________________
Apuntes Java
Wiki de Programación