Ich habe einen Server geschrieben, der nicht blockierende E/A mit der Java NIO API ausführt. Ich sehe eine Situation, bei der gelegentlich eine Clientanwendung abrupt herunterfährt (z. B. aufgrund eines Stromausfalls) und die Verbindung auf der Serverseite offen bleibt.NIO - Ermitteln einer geschlossenen Verbindung
Ein Kollege hat das gleiche Problem und sagte, er nutzt Herzschläge über die Leitung, um diese Art von Sache zu erkennen, aber ich hoffe, es gibt einen einfacheren Weg. Ist jemand anderes auf dieses Problem gestoßen?
Einige zusätzliche Informationen: Mein aktuelles Server-Design wird einen Schlüssel abbrechen und den entsprechenden Kanal schließen, wenn es einen IOException
bei einem Lese-/Schreibvorgang abfängt. Dieser Ansatz scheint in 99% der Fälle zu funktionieren. Ich habe nur eine Handvoll von Situationen gesehen, in denen die Verbindung offen zu sein scheint.
Danke ZZ Coder - das ist, was ich dachte (gefürchtet). Ich bin ziemlich erstaunt, dass dies kein Merkmal von TCP ist. – Adamski
Ein "Ping" eher, diese Anwendungen sind nicht menschlich - Sie wissen. –