Я хочу использовать дизайн "каждый io_service на рабочий поток" в моей программе. Но я не могу повторно использовать сокет Unix:
io_service io_1;
io_service io_2;
::unlink("/tmp/test");
stream_protocol::endpoint ep("/tmp/test");
stream_protocol::acceptor acceptor_1(io_1, ep, true);
stream_protocol::acceptor acceptor_2(io_2, ep, true);
io_1.run();
io_2.run();
не с «адрес уже используется». Когда я открываю свой asio / basic_socket_acceptor.hpp (boost 1.46.1), я вижу описание для конструктора акцептора:
Этот конструктор создает акцептор и автоматически открывает его для прослушивания новых соединений в указанной конечной точке.
@ param reuse_addr, должен ли конструктор установить опцию сокета socket_base :: reuse_address.
basic_socket_acceptor(boost::asio::io_service& io_service,
const endpoint_type& endpoint, bool reuse_addr = true)
Это баг asio bug, и я должен отправить его багтрекеру, я прав?