对于我来说,boost.asio在客户端应用连接到服务器时并不使用基本概念 - 使用IP地址和端口。可能是我在Boost中有一点点noobie - 我接受 - 但无论如何我不明白。
所以,我有这样的代码来获取客户端连接到服务器上的本地主机:boost.asio如何发现我的服务器应用程序监听哪个端口?
boost::asio::io_service io_service;
tcp::resolver resolver(io_service);
tcp::resolver::query query("localhost", "daytime");
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::resolver::iterator end;
tcp::socket socket(io_service);
boost::system::error_code error = boost::asio::error::host_not_found;
while(error && endpoint_iterator != end) {
socket.close();
socket.connect(*endpoint_iterator++, error);
}
的Windows在它的WinSock 2.0使用两个参数 - IP和端口 - 识别服务器。
所以,qurestion是 - Asio如何发现哪个端口服务器正在监听连接?它是否扫描所有端口?而且,如果是这样,如果两台服务器同时监听不同的端口会发生什么?
我没有完全理解第二个参数在查询ctor中的含义。第一个是我想连接的IP地址,对吧?第二个是什么意思? – chester89 2009-02-23 18:53:00