我有一个在Windows和MacOSX上运行良好的程序,但遇到Linux上的address already used
问题(Fedora 23,具体而言)。问题是我试图在同一个端口上构建两个boost::asio::ip::tcp::acceptor
对象,一个用于IPv4,一个用于IPv6。使用的构造函数的签名如下(参见here):
basic_socket_acceptor(
boost::asio::io_service & io_service,
const endpoint_type & endpoint,
bool reuse_addr = true);
请注意reuse_addr
参数。我希望它能够专门解决address already used
问题。唉,它在Linux上不起作用。有什么解释吗?