2014-01-25 82 views
0

我正在嘗試製作一次可以抓取多個網址的程序。當我編譯它,並通過該程序的幾個URL如同時捲曲多次抓取網址

/curl_fetch google.com yahoo.com facebook.com 

它工作正常,我得到的結果瞬間我使用的libcurl和libuv http://curl.haxx.se/libcurl/c/multi-uv.html

的這個示例代碼。但是,當我傳遞更多參數(例如100個URL)時,幾分鐘內都不會返回任何內容。嘗試並行獲取多個頁面時是否有鎖定的原因?

回答

1

爲了實現真正的並行傳輸,您需要使用構建的libcurl來支持異步名稱解析。它需要用線程解析器或c-ares構建。股票解析器是同步的,所以一個緩慢的DNS解析將阻止所有的同時傳輸,如果你添加幾百個傳輸機會,其中一些將有緩慢的名稱解析...

+0

我編譯libcurl與c - ares,但我仍然有調試 – cwings

+0

相同的問題,這不是最好的論壇... ... - –