On Sat, 20 Feb 2021 at 10:56, Child OfGod via Boost-users < [email protected]> wrote:
> Thanks Niall, I tried adding this to the code: > > [code] > boost::asio::socket_base::keep_alive ka_option(true); > socket.lowest_layer().set_option(ka_option); > [/code] > > and now it sometimes can come out of the read with an exception raised, > which is good, but this happens only once in a while. > There are a number of options you can get to control the intervals and thresholds for TCP keepalives. Bear in mind that: 1) They will increase battery use on mobile devices and laptops because the radio will be transmitting more often. 2) They won't detect a server who's application has gone quiet while the TCP link stays up. There is also SO_RCVTIMEO (on linux) https://linux.die.net/man/3/setsockopt > I haven't tried other ways yet such as what Richard Hodges suggested, as I > need to delve deeper into that, and Boost or linux is new to me. > > On Sat, Feb 20, 2021 at 12:58 AM Niall Douglas via Boost-users < > [email protected]> wrote: > >> On 19/02/2021 17:19, Richard Hodges via Boost-users wrote: >> > The TCP/IP protocol was designed to work over unreliable networks, >> > including sections that hop over radio links and dial-up telephone >> lines. >> > >> > In a nutshell, the way the internet works is that packets are >> > transmitted and it is assumed that they may or may not arrive at some >> > time in the future. There are timeouts built in, but they are longer >> > than you would probably want, on account of all the unreliable dial-ups >> > between you and the other peer. >> > >> > Therefore, to involve a timeout you need to run a timer in parallel with >> > the send/receive operation and cancel the operation if the timeout >> > occurs before the operation has completed. >> >> It probably would be easier to set SO_KEEPALIVE on the socket, then it >> will close as soon as the physical connection disappears. This works for >> any kind of socket, no timeouts needed. >> >> Niall >> _______________________________________________ >> Boost-users mailing list >> [email protected] >> https://lists.boost.org/mailman/listinfo.cgi/boost-users >> > _______________________________________________ > Boost-users mailing list > [email protected] > https://lists.boost.org/mailman/listinfo.cgi/boost-users > -- Richard Hodges [email protected] office: +442032898513 home: +376841522 mobile: +376380212
_______________________________________________ Boost-users mailing list [email protected] https://lists.boost.org/mailman/listinfo.cgi/boost-users
