asio 中的resolver一般用于将host等信息转化为socket信息,类似于getaddrinfo()
以下代码
boost::asio::io_service io; tcp::resolver resolver(io); tcp::resolver::query query(boost::asio::ip::host_name(), "80"); tcp::resolver::iterator endpoint_iterator = resolver.resolve(query); for (tcp::resolver::iterator iter; endpoint_iterator != iter; endpoint_iterator++) { std::cout << endpoint_iterator->endpoint() << std::endl; }
输出结果为:
[fe80::b085:5538:6305:667%13]:80 [fe80::c00c:b7bc:9c04:8ea6%18]:80 [fe80::144c:37dd:f5fc:e1a4%14]:80 10.3.30.91:80 192.168.1.150:80 192.168.128.1:80 [2001:0:9d38:953c:144c:37dd:f5fc:e1a4]:80