久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

libcurl使用easy模式阻塞卡死等問(wèn)題的完美解決---超時(shí)設(shè)置

 wusiqi111 2018-09-05

libcurl使用時(shí)疑難問(wèn)題:

在使用libcurl時(shí), jwisp發(fā)現(xiàn), curl_easy_perform是阻塞的方式進(jìn)行下載的, curl_easy_perform執(zhí)行后,程序會(huì)在這里阻塞等待下載結(jié)束(成功結(jié)束或者失敗結(jié)束).此時(shí)若正常下載一段時(shí)間后,進(jìn)行網(wǎng)絡(luò)中斷, curl_easy_perform并不會(huì)返回失敗,而是阻塞整個(gè)程序卡在這里,此時(shí)即使網(wǎng)絡(luò)連接重新恢復(fù), curl_easy_perform也無(wú)法恢復(fù)繼續(xù)下載,導(dǎo)致整個(gè)程序出現(xiàn)”死機(jī)”狀態(tài).

但是若先斷網(wǎng), 然后進(jìn)行curl_easy_perform的話,會(huì)直接返回失敗,不會(huì)阻塞

在網(wǎng)上搜索后發(fā)現(xiàn), 大家在網(wǎng)上遇到這個(gè)問(wèn)題的很多,但是解決方法很少,下面jwisp就把網(wǎng)上建議的可以使用的解決方法羅列:

1. 使用multi模式下載,而不使用easy模式,此方法的唯一好處就是multi并不會(huì)阻塞,而是立即返回.但是缺點(diǎn)是帶來(lái)了問(wèn)題,其一就是需要自己去阻塞,當(dāng)我們需要返回時(shí)再返回,其二還需要啟動(dòng)一個(gè)線程,需要自己控制整個(gè)過(guò)程的節(jié)奏.

2. 在下載中,另起一個(gè)線程,若發(fā)現(xiàn)下載狀態(tài)卡死(可以通過(guò)定期檢查文件大小來(lái)實(shí)現(xiàn)),則從外部中斷下載線程.此方法需另起線程,而且直接中斷線程,會(huì)給整個(gè)程序帶來(lái)不穩(wěn)定.

主要的設(shè)計(jì)思路如下, 下載過(guò)程中,設(shè)置超時(shí)時(shí)間為30秒, 30秒后若下載未完成就重新連接進(jìn)行下載(這個(gè)可解決卡死問(wèn)題),。

超時(shí)代碼設(shè)計(jì)如下:

復(fù)制代碼
curl_easy_setopt( curl, CURLOPT_VERBOSE, 1L ); //在屏幕打印請(qǐng)求連接過(guò)程和返回http數(shù)據(jù)
curl_easy_setopt( curl, CURLOPT_TIMEOUT, 10 );//接收數(shù)據(jù)時(shí)超時(shí)設(shè)置,,如果10秒內(nèi)數(shù)據(jù)未接收完,,直接退出
curl_easy_setopt(curl, CURLOPT_AUTOREFERER, 1); // 以下3個(gè)為重定向設(shè)置
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); //返回的頭部中有Location(一般直接請(qǐng)求的url沒(méi)找到),,則繼續(xù)請(qǐng)求Location對(duì)應(yīng)的數(shù)據(jù) 
curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 1);//查找次數(shù),防止查找太深
curl_easy_setopt( curl, CURLOPT_CONNECTTIMEOUT, 3 );//連接超時(shí),,這個(gè)數(shù)值如果設(shè)置太短可能導(dǎo)致數(shù)據(jù)請(qǐng)求不到就斷開(kāi)了
復(fù)制代碼

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多