Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ getaddrinfo()再次与EAI\u连续失败_C++_Network Programming_Getaddrinfo - Fatal编程技术网

C++ getaddrinfo()再次与EAI\u连续失败

C++ getaddrinfo()再次与EAI\u连续失败,c++,network-programming,getaddrinfo,C++,Network Programming,Getaddrinfo,在我的代码中,我使用的代码如下 do { r = getaddrinfo(host, service, &hints, ret); } while (r == EAI_AGAIN); 当测试getaddrinfo()连续失败时,循环不会正确终止 你认为有什么办法可以改进代码吗?我们可以使用计数器来计算它应该循环的次数吗 另外,请让我知道getaddrinfo()调用返回“EAI_”的所有原因。无可否认,这里有一个猜测 我们也在一个动力不足的单核嵌入式系统上看到了这一点 我假设(

在我的代码中,我使用的代码如下

do
{
    r = getaddrinfo(host, service, &hints, ret);
}
while (r == EAI_AGAIN);
当测试getaddrinfo()连续失败时,循环不会正确终止

你认为有什么办法可以改进代码吗?我们可以使用计数器来计算它应该循环的次数吗


另外,请让我知道getaddrinfo()调用返回“EAI_”的所有原因。

无可否认,这里有一个猜测

我们也在一个动力不足的单核嵌入式系统上看到了这一点

我假设(在我们的例子中是dnsmasq)是在一个单独的进程中运行的,不管出于什么原因(可能是因为我们在绕圈子追尾巴),它没有足够的资源(cpu/ram/…)来完成它的工作

对解决方案的一个粗略猜测可能是将睡眠放入这个紧密的循环中,让DNS缓存在其工作所需的资源上发挥魔力


我会让您知道它是否有效。

错误意味着:名称解析出现临时故障。我们不可能知道你为什么会这样。我们对你传递的参数一无所知。在忙循环中调用此函数不太可能产生结果。这很可能意味着某些DNS服务器无法访问/关闭或您的DNS配置错误。