Boost Users :
Subject: Re: [Boost-users] [Boost::asio] Problem using the same io_service with many sockets
From: Maarten de Vries (maarten_at_[hidden])
Date: 2016-10-03 15:10:36
On 30 September 2016 at 20:16, MarÃa Victoria Rocha <victoria_at_[hidden]>
> Hi all,
> I have defined an io_service that is used by two sockets, one of them
> uses tcp, and the other udp.
> When the callback of this async_read_some is called
> boost::bind(&RequestHandler::onRead, shared_from_this(),
> A udp socket is created with the same io_service and an
> async_receive_from is called. On the callback of this read operation I
> try to write to the tcp socket but it captures an exception with
> message: "unknown exception".
> When this happens, the client that is listening to the tcp socket,
> receives "End of file" error.
> I resolved this problem with an io_service per socket but I would like
> to use the same io_service.
> Someone has any idea why this happens?
âDo you have a minimal working example that demonstrates the problem? In
general it should be fine to use the same io_service with different
sockets, so I suspect the problem lies somewhere else. A minimal example
showing the problem will help a lot in tracking down the problem.
One thing though: if you don't catch the exception (or call
std::terminate() in the handler) you should see more details regarding the
exception (at least the type of the exception, but more if it inherits from
std::exception). That may be enough to point you to the problem already.
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