linux – cURL:空闲超时间隔超过指定值

linux – cURL:空闲超时间隔超过指定值,第1张

概述我正在使用libcurl创建到服务器的http连接.在初始化期间,我指定了5秒的空闲超时值,并且还指定了进度回调函数.我期待cURL在5秒不活动后中止连接并停止调用进度回调但我发现卷曲在大约15秒后超时.为什么curl比我指定的更多时间超时?将超时设置为较大的值无济于事.如果我指定100秒,则在105秒不活动后超时. code = s_curl_easy_setopt(m_curl_handle, 我正在使用libcurl创建到服务器的http连接.在初始化期间,我指定了5秒的空闲超时值,并且还指定了进度回调函数.我期待cURL在5秒不活动后中止连接并停止调用进度回调但我发现卷曲在大约15秒后超时.为什么curl比我指定的更多时间超时?将超时设置为较大的值无济于事.如果我指定100秒,则在105秒不活动后超时.

code = s_curl_easy_setopt(m_curl_handle,CURLOPT_nopROGRESS,0);assert(code == CURLE_OK);code = s_curl_easy_setopt(m_curl_handle,CURLOPT_PROGRESSFUNCTION,progress_callback);assert(code == CURLE_OK);

编辑:超时代码

//this will set the timeout for quitting in case the network goes downcode = s_curl_easy_setopt(m_curl_handle,CURLOPT_LOW_SPEED_liMIT,1);code = s_curl_easy_setopt(m_curl_handle,CURLOPT_LOW_SPEED_TIME,m_IDle_timeout);
解决方法 我想出了这个. cURL大约每秒更新一次进度.要计算空闲超时,cURL计算6次更新的平均字节数/秒,并将其与CURLOPT_LOW_SPEED_liMIT进行比较.如果此值小于CURLOPT_LOW_SPEED_liMIT且延伸时间超过CURLOPT_LOW_SPEED_TIME秒,则超时.因此,如果CURLOPT_LOW_SPEED_TIME为5秒,则cURL将计算最近6次进度更新(约5秒)内的平均字节数/秒,然后检查它是否小于CURLOPT_LOW_SPEED_liMIT至少5秒,从而使总时间约为5秒. 10秒 总结

以上是内存溢出为你收集整理的linux – cURL:空闲超时间隔超过指定值全部内容,希望文章能够帮你解决linux – cURL:空闲超时间隔超过指定值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1026174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存