关于gethostbyname()阻塞的问题
小弟最近正在练习linux下的网络编程,现在遇到个问题
要做的是对一个文件中的很多个url 依次进行网页下载,
刚开始单进程,利用alarm和siglongjump 结合控制超时。刚开始超时时间设的是15sec 但发现当有一个gethostbyname()超时返回时,余下的也跟着出问题
本来可以解析出来的也都超时返回了,这是怎么回事呢?。
后来偶然的机会把15sec改为25sec,发现解析不出来的时候gethostbyname()会返回出错消息,然后返回到子函数继续下一条。个人理解是gethostbyname的
失败返回时间在15sec以上,所以要有时间它他才会返回出错。虽然没能搞清具体原因,但这样也算把这快过去了,所以就继续往下做。
但现在我使用多进程的时候又出现在这个问题了,当有一个进程的gethostbyname()超时时,明显可以看到会有一些其他进程在这个时间进行的url也超时返回。
最恶的就是有时后面的所有请求都在gethostbyname这个地方超时,返回,下一条,再超时,再返回,再下一条。
为什么一个出错,还会牵连到其他的,想了挺多,实在搞不明白。
希望哪为高手帮忙分析一下,看有没有解决办法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
ping 一下你的DNS server