On Wed, Jan 21, 2015 at 10:49 AM, Glenn Eychaner geychaner@mac.com wrote:
- Protocol change: The server never writes to the socket in the existing
protocol, and can therefore never find out that the connection is dead. Writing to the socket would reveal this. But what happens if the server writes to the socket, and the client never reads? (We do, as it happens, have access to the client software, so the protocol can be fixed eventually. But I'm still curious as to the answer.)
If you can change the client, and you want to keep essentially re-using the same socket after a reboot, can't you simply send a RST on it when starting up and then re-connect- or even run a different program ahead starting that just sends a RST with that source/dest/port combination? That should make the server side abandon that connection and accept another, although you may still need to play tricks on the server side to avoid TIME_WAIT.