如何使用Boost.Asio解析主机(仅限)?

Art*_*yom 7 c++ boost boost-asio

根据为了解析主机的文档,boost::asio::ip::tcp::resolver::query它也应该接收服务.

如果我想解决与端口无关的主机怎么办?我该怎么办呢?我应该指定虚拟端口吗?

gim*_*mpf 7

boost邮件列表的一篇文章中,其他人似乎这样做(复制,重新格式化,服务号码改变,没有别的):

namespace bai = boost::asio::ip;
bai::tcp::endpoint ep(bai::address_v4(0xD155AB64), 0); // 209.85.171.100:0
boost::asio::io_service ios;
bai::tcp::resolver resolver(ios);
bai::tcp::resolver::iterator iter = resolver.resolve(ep);
bai::tcp::resolver::iterator end;
while (iter != end)
{
  std::cerr << (*iter).host_name() << std::endl; // cg-in-f100.google.com
  ++iter;
} 
Run Code Online (Sandbox Code Playgroud)

正如你所说的那样,这里仍然传递了一个服务,但是通过Boost.Asio代码的一步显示了这一点(在resolver_service.hpp,我正在使用相当旧的1.36版本):

// First try resolving with the service name. If that fails try resolving
// but allow the service to be returned as a number.
Run Code Online (Sandbox Code Playgroud)

所以,只需要0,它应该做你想要的.