Boost.Asio toturialに従って単純なTCPクライアントを実装しましたが、最初のステップでブロックされ、boost::asio::ip::tcp::resolver::async_resolve
機能せず、ResolverHandlerが呼び出されることはありません。
void client::start()
{
socket_.reset(new boost::asio::ip::tcp::socket(io_service_));
// Start an asynchronous resolve to translate the server and service names
// into a list of endpoints.
tcp::resolver::query query(server_address_, server_port_);
resolver_.async_resolve(query,
boost::bind(&client::handle_resolve,
shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::iterator));
}
上記のソースコードのように、、、、、およびリゾルバーオブジェクトを作成してio_service
からメソッドを呼び出しますが、ResolverHandlerが呼び出されることはほとんどなく、アプリケーションを初めて起動するときに、ResolverHandlerが1回または2回呼び出されることがあります。 、しかしそれ以上は何もありません。socket
resolver
query
resolver_.async_resolve()
client::handle_resolve
公式ドキュメントを読みましたが、何も見つかりません。なにか提案を?