【发布时间】:2012-02-21 14:35:38
【问题描述】:
在我的代码中,我使用的代码如下。
do
{
r = getaddrinfo(host, service, &hints, ret);
}
while (r == EAI_AGAIN);
当测试 getaddrinfo() 连续失败,因此循环没有正确终止。
您有什么方法可以改进代码吗?我们可以使用计数器来计算它应该循环的次数吗?
另外请告诉我 getaddrinfo() 调用返回“EAI_AGAIN”的所有原因。
【问题讨论】:
-
错误表示:名称解析出现临时故障。我们不可能知道为什么会发生这种情况。我们对您传递的参数一无所知。在繁忙的循环中调用它不太可能产生结果。
-
这很可能意味着某些 DNS 服务器无法访问/关闭或您的 DNS 配置错误。
标签: c++ network-programming getaddrinfo