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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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>
            激情五月婷婷综合| 欧美日韩的一区二区| 国产亚洲成av人片在线观看桃 | 国产精品国产成人国产三级| 亚洲私人影院在线观看| 亚洲图片欧洲图片日韩av| 国产精品嫩草久久久久| 久久精品视频免费观看| 亚洲久久成人| 女女同性精品视频| 欧美成人激情在线| 亚洲天堂成人| 久久精品电影| 亚洲看片免费| 亚洲欧美色婷婷| 亚洲韩国精品一区| 宅男66日本亚洲欧美视频| 国产一区二区丝袜高跟鞋图片| 老鸭窝91久久精品色噜噜导演| 欧美黑人在线观看| 欧美亚洲三区| 欧美成人高清视频| 欧美一区二区三区免费观看视频| 久久夜色精品国产欧美乱极品| 一区二区高清视频| 久久久久久久久一区二区| 亚洲美女一区| 久久精品视频亚洲| 亚洲一区二区高清| 狼人社综合社区| 欧美一区=区| 欧美女激情福利| 噜噜爱69成人精品| 国产乱码精品| 一区二区av| 亚洲精品永久免费| 久久国产欧美精品| 欧美一级播放| 欧美性一二三区| 亚洲国产美女| 精品白丝av| 亚洲欧美综合网| 亚洲一区三区在线观看| 欧美成人午夜影院| 蜜臀va亚洲va欧美va天堂| 国产精品久久影院| 亚洲最新视频在线| av不卡免费看| 欧美精品三区| 亚洲国产精品成人久久综合一区| 国内精品嫩模av私拍在线观看| 亚洲视频你懂的| 亚洲特级片在线| 欧美日韩一区二区三| 亚洲欧洲综合| 亚洲美女在线看| 欧美日韩99| 日韩午夜在线观看视频| 99精品视频一区| 欧美精品久久久久久久久老牛影院 | 国产在线一区二区三区四区| 日韩视频精品在线| 一区二区欧美亚洲| 欧美日在线观看| 一区二区三区国产在线| 亚洲视频在线观看免费| 欧美日韩午夜| 亚洲一区二区三区在线看| 亚洲女人av| 国产欧美一区二区视频| 午夜综合激情| 久久综合一区| 小处雏高清一区二区三区 | 欧美日本国产一区| 99www免费人成精品| 亚洲私人影院| 国产午夜精品福利| 久久久不卡网国产精品一区| 你懂的亚洲视频| 日韩午夜av在线| 欧美性大战xxxxx久久久| 亚洲免费影视第一页| 久久久久久久久久久成人| 亚洲国产高清一区| 欧美久久久久久蜜桃| 亚洲女人天堂av| 久久亚洲一区二区| 一区二区日韩欧美| 国产亚洲精品aa| 欧美freesex8一10精品| 9人人澡人人爽人人精品| 久久不射电影网| 91久久国产综合久久蜜月精品| 欧美日韩综合精品| 久久精品国产亚洲aⅴ| 亚洲精品国产精品国产自| 香蕉久久久久久久av网站| 在线成人小视频| 国产精品二区影院| 久久久久久日产精品| 一区二区久久久久久| 免费日韩成人| 午夜精品久久久久久久男人的天堂| 国内伊人久久久久久网站视频| 欧美激情亚洲另类| 久久电影一区| 亚洲免费福利视频| 免费不卡中文字幕视频| 亚洲一区二区在线免费观看视频 | 亚洲第一中文字幕| 国产精品久久影院| 欧美交受高潮1| 久久乐国产精品| 亚洲欧美国产毛片在线| 亚洲精品自在久久| 欧美va天堂| 久久久久久精| 午夜伦理片一区| 在线视频日韩精品| 亚洲国产欧美一区二区三区丁香婷 | 一区在线电影| 国产精品sm| 欧美日韩1234| 欧美激情一区二区三区在线视频观看| 亚洲视频1区2区| 亚洲精品久久久久久下一站 | 欧美成人嫩草网站| 久久久久**毛片大全| 亚洲欧美亚洲| 亚洲一区二区动漫| 一区二区av在线| 一区二区三区.www| 亚洲日本一区二区三区| 亚洲黄网站黄| 亚洲国产一区二区三区在线播| 你懂的一区二区| 欧美韩日高清| 亚洲午夜未删减在线观看| 欧美日韩国产va另类| 欧美激情在线免费观看| 鲁大师成人一区二区三区| 久久嫩草精品久久久久| 欧美在线综合| 久久大香伊蕉在人线观看热2| 欧美一区二区成人| 久久精品国产77777蜜臀| 久久精品国产精品亚洲综合| 久久精品国产91精品亚洲| 久久精品综合一区| 久久综合色综合88| 欧美激情久久久久久| 欧美精品一区在线观看| 欧美日韩亚洲系列| 国产精品每日更新| 国内精品久久久久影院优| …久久精品99久久香蕉国产| 亚洲欧洲一级| 亚洲一二三区精品| 久久国产福利| 免费一级欧美在线大片| 最新中文字幕亚洲| 中文日韩在线| 久久精品中文字幕一区二区三区| 免费在线播放第一区高清av| 欧美黄色一区二区| 国产精品亚洲一区二区三区在线| 国产在线一区二区三区四区 | 欧美日韩成人在线播放| 欧美亚洲成人网| 狠狠狠色丁香婷婷综合激情| 91久久夜色精品国产九色| 亚洲视频一区二区| 久久久久se| 亚洲九九精品| 久久国产毛片| 欧美日韩一视频区二区| 国内精品久久久久久久97牛牛| 亚洲精品乱码久久久久久| 亚洲欧美日韩国产一区二区三区| 猫咪成人在线观看| 99视频+国产日韩欧美| 久久视频这里只有精品| 国产精品成人观看视频免费| 在线成人欧美| 欧美一级午夜免费电影| 亚洲丰满在线| 欧美在线中文字幕| 国产精品久久激情| 亚洲精品你懂的| 久久久无码精品亚洲日韩按摩| 99视频一区二区| 欧美xxx在线观看| 韩日精品视频| 西瓜成人精品人成网站| 亚洲破处大片| 久久久久久综合网天天| 国产一级揄自揄精品视频| 亚洲一区二区三区四区视频| 欧美激情精品久久久久久久变态| 欧美一区二区成人6969|