Sockets, ¿Se dan cuenta cuando pierden la red?

Hola a todos, tengo una pequeña duda que me imagino no será demasiado difícil de responder, es sobre sockets.
Creas un ServerSocket, acceptas una conexión de un cliente(estoy probando haciendo un telnet al puerto desde otro ordenador) y estas mandándote mensajes con el cliente, eso si el servidor sólo responde, es decir se queda siempre en un read() y si le llega algo responde.
De repente le quito la red al cliente(el cable directamente, no mato la session), pero el servidor se mantiene como que tuviera un socket enganchado cuando es mentira! A veces salta una excepción pero al cabo de 2 ó 3 minutos, no se puede enterar antes, ¿hay alguna forma de chequear que el cliente sigue ahí?
Muchas gracias de antemano, saludos,
César.
Si lo necesitáis os puedo mandar el código.
Respuesta
1
Puedes creo que era, con setSoTimeout en el servidor, para que deje de escuchar y vuelva a intentarlo tras unos segundos, ademas, de esta forma puedes comprobar condiciones adicionales.
No había finalizado la pregunta, perdonar...
La verdad es que resulto pesado resolver el problema, no sólo tuvimos que cambiar una propiedad de los sockets sino que para que fuera óptimo tuvimos que implementar un rodeo, hacer un ping y ver el estado de la máquina, así funciona bien.
Muchas gracias, saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas