我有一个使用C++ Boost库的客户端,它会进行阻塞连接,并在收到响应后处理消息。但我遇到了一个奇怪的问题。
tcp::resolver::query query(tcp::v6(), this->host, port,tcp::resolver::query::v4_mapped);
iterator = resolver.resolve(query);
socket = new tcp::socket(io_service);
socket->connect(*iterator);
我尝试连接一台通过IPV6启用但ping6无法到达的机器。然而,在第二行解析查询时,我没有收到任何错误提示。因此,在出现错误之前尝试连接需要太长时间。我的问题如下:
1)是否可能在asio的阻塞连接中设置超时?我无法切换到异步操作模式。
2)为什么在解析无法到达的主机时不会出现错误?
任何建议都将非常有帮助。