青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

關于使用libcurl的注意事項

libcurl與CLOSE_WAIT
轉載自:http://blog.sunshow.net/2010/03/libcurl-and-close-wait/

調用libcurl下載,然后使用netstat查看發(fā)現有大量的TCP連接保持在CLOSE_WAIT狀態(tài)
查看libcurl的文檔說明,有這樣一個選項:

CURLOPT_FORBID_REUSE

Pass a long. Set to 1 to make the next transfer explicitly close the connection when done. Normally, libcurl keeps all connections alive when done with one transfer in case a succeeding one follows that can re-use them. This option should be used with caution and only if you understand what it does. Set to 0 to have libcurl keep the connection open for possible later re-use (default behavior).

也就是說,默認情況下libcurl完成一個任務以后,出于重用連接的考慮不會馬上關閉
如果沒有新的TCP請求來重用這個連接,那么只能等到CLOSE_WAIT超時,這個時間默認在7200秒甚至更高,太多的CLOSE_WAIT連接會導致性能問題

解決方法:

curl_easy_setopt(curl, CURLOPT_FORBID_REUSE, 1);

 最好再修改一下TCP參數調低CLOSE_WAIT和TIME_WAIT的超時時間




libcurl 使用筆記
轉載自:http://gcoder.blogbus.com/logs/54871550.html

libcurl 是一個很不錯的庫,支持http,ftp等很多的協議。使用庫最大的心得就是,不仔細看文檔,僅僅看著例子就寫程序,是一件危險的事情。我的程序崩潰了,我懷疑是自己代碼寫的問題,后來發(fā)現是庫沒用對。不仔細看文檔(有時候文檔本身也比較差勁,這時除了看仔細外,還要多動腦子,考慮它是怎么實現的),后果很嚴重。不加思索的使用別人的庫或者代碼,有時候很愜意,但是出問題時,卻是寢食難安的。

1. CURLcode curl_global_init(long flags); 在多線程應用中,需要在主線程中調用這個函數。這個函數設置libcurl所需的環(huán)境。通常情況,如果不顯式的調用它,第一次調用curl_easy_init()時,curl_easy_init 會調用 curl_global_init,在單線程環(huán)境下,這不是問題。但是多線程下就不行了,因為curl_global_init不是線程安全的。在多個線程中調用curl_easy_int,然后如果兩個線程同時發(fā)現curl_global_init還沒有被調用,同時調用curl_global_init,悲劇就發(fā)生了。這種情況發(fā)生的概率很小,但可能性是存在的。

2. libcurl 有個很好的特性,它甚至可以控制域名解析的超時。但是在默認情況下,它是使用alarm + siglongjmp 實現的。用alarm在多線程下做超時,本身就幾乎不可能。如果只是使用alarm,并不會導致程序崩潰,但是,再加上siglongjmp,就要命了(程序崩潰的很可怕,core中幾乎看不出有用信息),因為其需要一個sigjmp_buf型的全局變量,多線程修改它。(通常情況下,可以每個線程一個 sigjmp_buf 型的變量,這種情況下,多線程中使用 siglongjmp 是沒有問題的,但是libcurl只有一個全局變量,所有的線程都會用)。

  具體是類似 curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30L) 的超時設置,導致alarm的使用(估計發(fā)生在域名解析階段),如前所述,這在多線程中是不行的。解決方式是禁用掉alarm這種超時, curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1L)。

  這樣,多線程中使用超時就安全了。但是域名解析就沒了超時機制,碰到很慢的域名解析,也很麻煩。文檔的建議是 Consider building libcurl with c-ares support to enable asynchronous DNS lookups, which enables nice timeouts for name resolves without signals.  c-ares 是異步的 DNS 解決方案。




 libcurl 多線程使用注意事項
轉載自:http://blog.csdn.net/jaylong35/article/details/6439549

1、問題來源,多線程使用Libcurl導致程序跑一段時間后自己退出,沒有明顯的異常。找不到合適的BUG。

 最后通過查看資料和網上找的一些文章,發(fā)現,原來是信號處理的問題:

CURLOPT_NOSIGNAL

Pass a long. If it is 1, libcurl will not use any functions that install signal handlers or any functions that cause signals to be sent to the process. This option is mainly here to allow multi-threaded unix applications to still set/use all timeout options etc, without risking getting signals. (Added in 7.10)

If this option is set and libcurl has been built with the standard name resolver, timeouts will not occur while the name resolve takes place. Consider building libcurl with c-ares support to enable asynchronous DNS lookups, which enables nice timeouts for name resolves without signals.

Setting CURLOPT_NOSIGNAL to 1 makes libcurl NOT ask the system to ignore SIGPIPE signals, which otherwise are sent by the system when trying to send data to a socket which is closed in the other end. libcurl makes an effort to never cause such SIGPIPEs to trigger, but some operating systems have no way to avoid them and even on those that have there are some corner cases when they may still happen, contrary to our desire. 

就是當多個線程都使用超時處理的時候,同時主線程中有sleep或是wait等操作。如果不設置這個選項,libcurl將會發(fā)信號打斷這個wait從而導致程序退出。

所以,在使用的時候把這個選項設置成1就可以了.

curl_setopt(curl, CURLOPT_NOSIGNAL, 1L);


2、關于libcurl庫的初始化和關閉:curl_global_init()和curl_global_cleanup()

這兩個函數并不是線程安全的。所以只能在主線程中進行一次的初始化和清除。

雖然這個不是一定就會有問題,但是如果不這樣處理還是有概率發(fā)生的。

posted on 2012-02-20 11:39 楊粼波 閱讀(3593) 評論(0)  編輯 收藏 引用 所屬分類: 文章收藏 、網絡編程 、C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国内在线| 91久久国产自产拍夜夜嗨| 久久av一区二区三区亚洲| 欧美成人精品一区二区| 欧美韩国一区| 在线视频精品一区| 国产精品视频久久久| 久久久久看片| 99精品国产在热久久婷婷| 久久成人av少妇免费| 最近中文字幕mv在线一区二区三区四区| 欧美黑人多人双交| 午夜宅男久久久| 亚洲国产日韩欧美一区二区三区| 欧美成人一区二区三区在线观看| 亚洲欧美日韩高清| 亚洲第一福利社区| 亚洲一区日韩在线| 国产日韩欧美中文在线播放| 免费成人黄色片| 一区二区三区精品国产| 久久视频在线免费观看| 亚洲一区二区视频在线| 亚洲国产精品va| 国产欧美一区二区视频| 欧美精品自拍偷拍动漫精品| 久久精品亚洲精品| 午夜精品久久久久久久男人的天堂 | 久久国产高清| 亚洲已满18点击进入久久 | 中文久久精品| 一区二区国产日产| 久久精品综合| 欧美午夜不卡视频| 欧美日韩成人综合天天影院| 美女日韩欧美| 国产精品视频一区二区高潮| 亚洲国产欧美一区| 亚洲精品偷拍| 亚洲乱码国产乱码精品精| 在线观看福利一区| 激情婷婷久久| 亚洲国产日韩欧美在线图片| 亚洲男人的天堂在线观看| 久久天天狠狠| 午夜久久久久| 国产精品v欧美精品v日韩| 亚洲区一区二| 欧美成熟视频| 久久精品国产999大香线蕉| 国产精品久久午夜夜伦鲁鲁| 国产精品试看| 一区二区日韩欧美| 亚洲缚视频在线观看| 久久久久一区二区| 精品91免费| 久久久久久尹人网香蕉| 男同欧美伦乱| 日韩视频一区二区在线观看 | 久久不射网站| 亚洲欧美日韩精品久久久| 国产精品国产三级国产aⅴ9色| 国产精品毛片a∨一区二区三区|国| 亚洲欧洲一区| 国产亚洲精品美女| 久久激情综合网| 国产精品乱人伦中文| 亚洲视频网站在线观看| 久久国产综合精品| 欧美成人乱码一区二区三区| 午夜综合激情| 国产一区二区黄| 久久嫩草精品久久久久| 亚洲欧美自拍偷拍| 国产一区二区三区日韩| 久久日韩精品| 暖暖成人免费视频| 国产女人18毛片水18精品| 亚洲欧美中文在线视频| 欧美www在线| 欧美二区在线观看| 亚洲无毛电影| 亚洲欧洲99久久| 精品91免费| 亚洲第一毛片| 欧美三级特黄| 99热这里只有精品8| 老司机精品导航| 亚洲午夜久久久久久久久电影院 | 欧美精品成人在线| 国语自产精品视频在线看8查询8| 日韩一级大片| 女仆av观看一区| 欧美精品18+| 午夜亚洲一区| 99精品欧美一区| 国产九九视频一区二区三区| 亚洲色无码播放| 性欧美1819性猛交| 最新日韩精品| 亚洲一区二区三区激情| 亚洲东热激情| 亚洲一区二区在线播放| 亚洲国产三级| 亚洲欧美第一页| 国产精品多人| 美女久久一区| 久久精品国产久精国产思思| 亚洲精品影视在线观看| 午夜一区二区三视频在线观看 | 日韩视频在线免费观看| 国产一区欧美| 久热精品视频在线观看| 欧美日韩在线影院| 欧美成人免费在线观看| 国产亚洲毛片在线| 艳妇臀荡乳欲伦亚洲一区| 激情久久综合| 亚洲欧美一区二区三区极速播放| 一二三区精品福利视频| 国产有码一区二区| 亚洲国产精品久久人人爱蜜臀 | 欧美日韩综合视频网址| 老司机成人网| 国产一区二区三区黄| 在线一区亚洲| 一本色道久久综合亚洲91| 理论片一区二区在线| 樱桃国产成人精品视频| 亚洲影院免费观看| 一本色道久久88综合亚洲精品ⅰ| 裸体女人亚洲精品一区| 久久亚洲视频| 国产最新精品精品你懂的| 亚洲综合精品自拍| 午夜欧美精品久久久久久久| 国产精品国产自产拍高清av| 99视频精品全部免费在线| 一区二区三区欧美| 欧美日韩伊人| 久久天堂av综合合色| 国产伦精品一区二区| 亚洲永久视频| 久久精品视频亚洲| 激情成人av| 久久综合久久久| 亚洲韩国青草视频| 99精品福利视频| 欧美日一区二区在线观看 | 欧美午夜精品理论片a级按摩| 99热免费精品| 销魂美女一区二区三区视频在线| 国产精品免费视频观看| 亚洲欧美制服中文字幕| 久久人91精品久久久久久不卡 | 欧美网站在线观看| 亚洲一区成人| 久久久久国产精品午夜一区| 欧美久久99| 日韩午夜激情av| 亚洲免费在线| 国产中文一区二区三区| 美女脱光内衣内裤视频久久影院| 亚洲国产欧美在线人成| 亚洲影视在线播放| 韩国v欧美v日本v亚洲v| 欧美国产日韩一区二区| 亚洲午夜在线观看视频在线| 久久免费视频在线观看| 99国产精品| 国产一区自拍视频| 免费一区视频| 亚洲影院色无极综合| 欧美www视频在线观看| 亚洲午夜羞羞片| 国产主播一区二区| 欧美日韩亚洲三区| 久久久久99| 一区二区三区四区国产精品| 久久天天狠狠| 亚洲免费在线观看视频| 伊人婷婷久久| 久久综合给合久久狠狠色| 亚洲美女av网站| 国产精品亚洲精品| 欧美成人免费大片| 新片速递亚洲合集欧美合集| 亚洲黄色在线看| 久久久久中文| 亚洲一区二区三区中文字幕| 在线观看91精品国产麻豆| 国产精品一级二级三级| 欧美日本国产在线| 老司机免费视频一区二区| 亚洲综合精品一区二区| 99亚洲精品| 最新日韩在线| 欧美成人久久| 麻豆久久精品| 久久久一本精品99久久精品66|