Suppose you have a server and some client. The client connects to the server over TCP. The client hates it when the connection breaks because of his imperfections, he believes that the connection, once installed, never breaks and if it breaks, it's he's dying, and you have all the work to do again.
Are there any tools ready that organizes "logically tear-resistant communication" pseudoroegneria between the client and the server? Here's how it could work:
| | | CLIENT ----> localhost:1234 | server:1234 -----> SERVER demons <=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+> demons if it breaks, then the daemon utility the client will reconnected to the demon utility server, but, importantly, when this CLIENT believes that the connection with the Server was terminated, because the CLIENT connected with the demon on localhost (a SERVER, respectively, also with a demon on his host).
Ie the idea is that even if the connection is lost for a day (turned off and replaced the router, changed provider — in General anything), the CLIENT still continues to believe that it is connected with the Server, and no disconnection was not (but just the connection suddenly became very brake — pull to open 1 pack per day). With localhost-the connection never breaks...
PS
Please do not suggest all sorts of TCP keep-alive timeouts at the TCP level and other trash — the solution here is clearly supposed to be at a higher level than TCP (because to force the TCP connection is not torn in the case, for example, the physical replacement of the router or moving to another Internet operator). There is also no possibility of making improvements in the client and server.