мне немного странно, что boost.asio не использует базовую концепцию при подключении клиентского приложения к серверу - используя IP-адрес и порт. Может быть, я немного Noobie в Boost - и я принимаю это - но в любом случае я не понимаю.
Итак, у меня есть такой код для подключения клиента к серверу на локальном хосте:
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 и порт - для идентификации сервера.
Итак, вопрос - как именно Asio узнает, на каком порту сервер прослушивает соединения? Сканирует ли он все порты? И если это произойдет, что произойдет, если два сервера одновременно прослушивают разные порты?