|
Boost Users : |
From: Child OfGod (rwmoekoe_at_[hidden])
Date: 2021-02-20 09:55:59
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.
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 <
boost-users_at_[hidden]> 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
> Boost-users_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net