のドキュメントによると、boost::asio::ip::tcp::resolver::query
ホストを解決するには、サービスも受け取る必要があります。
ポートに関係なくホストを解決したい場合はどうすればよいですか? どうすればいいですか?ダミーポートを指定する必要がありますか?
のドキュメントによると、boost::asio::ip::tcp::resolver::query
ホストを解決するには、サービスも受け取る必要があります。
ポートに関係なくホストを解決したい場合はどうすればよいですか? どうすればいいですか?ダミーポートを指定する必要がありますか?
ブースト メーリング リストの 1 つの投稿では、他の誰かが次のようにしているように見えました (コピー、再フォーマット、サービス番号の変更、他には何もありません)。
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;
}
あなたが正しく言ったように、ここでもサービスが渡されますが、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.
したがって、0 を指定するだけで、希望どおりに動作するはずです。