卷曲多次获取URL同时

时间:2014-01-25 19:19:15

标签: c curl libcurl libuv

我正在尝试制作一个可以同时获取多个网址的程序。我正在使用libcurl和libuv http://curl.haxx.se/libcurl/c/multi-uv.html

的示例代码

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

/curl_fetch google.com yahoo.com facebook.com

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

1 个答案:

答案 0 :(得分:1)

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