直白點說,就是對getaddrinfo()這個函數的適配。抽象點說就是解析器。
細節如下:
boost::asio::ip::tcp::resolver resolver(asioService);
boost::asio::ip::tcp::resolver::query queryEndpoints(boost::asio::ip::host_name(),"80");
boost::asio::ip::tcp::resolver::iterator endpoint_iterator = resolver.resolve(queryEndpoints);
;
for(boost::asio::ip::tcp::resolver::iterator iterNull;
endpoint_iterator != iterNull;
endpoint_iterator++)
{
std::cout << endpoint_iterator->endpoint() << std::endl;
}
上面的代碼有這么幾個類型:
boost::asio::ip::tcp::resolver
boost::asio::ip::tcp::resolver::query
boost::asio::ip::tcp::resolver::iterator
resolver抽線的是getaddrinfo()動作
boost::asio::ip::tcp::resolver::query抽象的是getaddrinfo()需要的參數
boost::asio::ip::tcp::resolver::iterator抽象的是getaddrinfo()的結果
這整個體系是抽象winsock sdk到stl思想