Tengo una aplicación que se conecta a un servidor mediante Sockets TCP. El problema es que cuando la conexión con el servidor TCP se pierde, el cliente al cabo de un rato deja de mandar mensajes aunque se ejecute el método write del DataOutputStream, ya que el sniffer no captura nada. El problema está en que Java dice que el socket sigue abierto y no está desconectado (cuando creo que en realidad si lo está, o al menos eso parece ya que ya no manda nada) ¿Es esto cierto?
¿Cómo se puede hacer para que se mantenga el socket abierto y siga intentando enviar sin cerrar? Quiero hacer esto porque el servidor no cierra la conexión y si conecto posteriormente abriendo otro socket, el servidor sigue mandando las respuestas al puerto del anterior socket, que el S.O ya ha cerrado (algo raro hace)
¿Alguien puede decirme cómo se podría solucionar?