【发布时间】:2013-08-13 12:56:35
【问题描述】:
我正在使用 boost asio 创建一个测试服务器来测试一个 http 客户端。这将在与客户端相同的机器上运行。现在我想做的是创建一个随机分配端口的服务器。我在这里看过这个帖子:Using boost::asio is there a portable way to find out free port number 但坦率地说我还是有点困惑。
我的代码如下所示:
boost::asio::io_service service;
tcp::acceptor acceptor(service);
unsigned short port(0);
tcp::endpoint endPoint(tcp::endpoint(tcp::v4(), port);
acceptor.open(endPoint.protocol());
acceptor.set_option(tcp::acceptor::reuse_address(true));
acceptor.bind(endPoint);
port = endPoint.port();
std::cout<<port<<std::endl; // prints 0
我的想法是,通过使用“端口 0”创建一个端点,然后尝试绑定到该端口,它应该会导致一个可用端口被随机分配,但情况似乎并非如此。知道我做错了什么吗?
干杯。
【问题讨论】:
标签: c++ sockets network-programming boost-asio