0

我正在尝试制作一个可以一次获取多个 URL 的程序。我正在使用这个 libcurl 和 libuv http://curl.haxx.se/libcurl/c/multi-uv.html的示例代码

当我编译它并向程序传递一些 URL 时,例如

/curl_fetch google.com yahoo.com facebook.com

它工作正常,我立即得到结果。但是,当我传递更多参数时,例如 100 个 URL,几分钟内根本没有返回任何内容。尝试并行获取多个页面时是否有锁定的原因?

4

1 回答 1

1

要使传输真正并行,您需要使用为支持异步名称解析而构建的 libcurl。它需要使用线程解析器或 c-ares 构建。股票解析器是同步的,因此缓慢的 DNS 解析将阻止所有同时传输,如果您添加数百个传输机会,其中一些将有缓慢的名称解析......

于 2014-01-25T22:48:07.873 回答