关于gethostbyname()阻塞的问题

发布于 2022-09-29 02:30:09 字数 600 浏览 11 评论 0

小弟最近正在练习linux下的网络编程,现在遇到个问题

要做的是对一个文件中的很多个url 依次进行网页下载,
刚开始单进程,利用alarm和siglongjump 结合控制超时。刚开始超时时间设的是15sec 但发现当有一个gethostbyname()超时返回时,余下的也跟着出问题
本来可以解析出来的也都超时返回了,这是怎么回事呢?。

后来偶然的机会把15sec改为25sec,发现解析不出来的时候gethostbyname()会返回出错消息,然后返回到子函数继续下一条。个人理解是gethostbyname的
失败返回时间在15sec以上,所以要有时间它他才会返回出错。虽然没能搞清具体原因,但这样也算把这快过去了,所以就继续往下做。

但现在我使用多进程的时候又出现在这个问题了,当有一个进程的gethostbyname()超时时,明显可以看到会有一些其他进程在这个时间进行的url也超时返回。

最恶的就是有时后面的所有请求都在gethostbyname这个地方超时,返回,下一条,再超时,再返回,再下一条。

为什么一个出错,还会牵连到其他的,想了挺多,实在搞不明白。
希望哪为高手帮忙分析一下,看有没有解决办法。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゃ人海孤独症 2022-10-06 02:30:09

ping 一下你的DNS server

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文