gpt4 book ai didi

c++ - boost::asio::ip::tcp::resolver::iterator 是做什么的?

转载 作者:IT老高 更新时间:2023-10-28 22:36:56 34 4
gpt4 key购买 nike

我从 C++ 中的 boost asio 编程开始,在查看示例时,我无法理解 boost::asio::ip::tcp::resolver::iterator 是什么做。

代码:

boost::asio::io_service io_service;

tcp::resolver resolver(io_service);
tcp::resolver::query query(argv[1]);
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::resolver::iterator end;

tcp::socket socket(io_service);
boost::system::error_code error = boost::asio::error::host_not_found;
while (error && endpoint_iterator != end)
{
socket.close();
socket.connect(*endpoint_iterator++, error);
}

如果我的问题没有提供足够的信息,请帮助我并原谅我。

最佳答案

boost::asio::ip::tcp::resolver::iterator 遍历您指定的主机的地址列表(主机可以有多个地址)。

就像 std::string::iterator 遍历其字符一样,boost::asio::ip::tcp::resolver::iterator 遍历其地址列表。

以下代码:

while (error && endpoint_iterator != end)
{
socket.close();
socket.connect(*endpoint_iterator++, error);
}

正在尝试建立到每个端点的连接,直到它成功或用完端点(感谢 Eugen Constantin Dinca 的更正)。

关于c++ - boost::asio::ip::tcp::resolver::iterator 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5110206/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com