Detectar desconexión física instantáneamente de Socket desde cliente
Hola, estoy intentando mejorar las funcionalidades de un programa que usa TClientSocket pero la conexión es crítica y hasta ahora, si había algún problema con el cable o lo que fuera, hasta que Windows cierra el puerto pueden pasar minutos.
He estado investigando el tema del heartbeat enviando cada segundo un #0 pero aún así, tarda entre 10 y 20 segundos darse cuenta de que lo que está enviando no lo recibe nadie.
Mi pregunta es si hay alguna forma de comprobar que la conexión es satisfactoria instantáneamente(cada segundo o 2 segundos) sin hacer una guarrada del estido desconectar y conectar (que es la única que se me ocurre pero veo inviable).
Espero que no haya salido nada parecido, he encontrado unos cuantos artículos pero que se limitan a decir lo del heartbeat, lo cual, a mi, no se por que, no me funciona al instante.
Datos: uso delphi 7 y XE2
Gracias, un saludo.
|