首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用EAI_AGAIN时,getaddrinfo()不断失败

使用EAI_AGAIN时,getaddrinfo()不断失败
EN

Stack Overflow用户
提问于 2012-02-21 22:35:39
回答 1查看 2.2K关注 0票数 1

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

代码语言:javascript
复制
do
{
    r = getaddrinfo(host, service, &hints, ret);
}
while (r == EAI_AGAIN);

当测试getaddrinfo()连续失败时,循环不能正确终止。

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

另外,请告诉我getaddrinfo()调用返回"EAI_AGAIN“的原因是什么。

EN

回答 1

Stack Overflow用户

发布于 2017-11-29 08:38:09

无可否认,这是一个大胆的猜测。

我们在一个性能稍弱的单核嵌入式系统上也看到了这一点。

我假设(在我们的例子中)dnsmasq是在一个单独的进程中运行的,并且由于某种原因(可能是因为我们在绕圈子追逐我们的尾巴),它没有获得足够的资源(cpu/ram/...)做好本职工作。

对解决方案的大胆猜测可能是将睡眠放在这个紧凑的循环中,让DNS缓存魔术般地处理它所需的资源来完成它的工作。

如果有效的话,我会告诉你的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9379373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档