免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13902 | 回复: 3

问个libcurl长连接的问题 [复制链接]

论坛徽章:
0
发表于 2012-06-26 14:38 |显示全部楼层
看例子有介绍说,
  1. CURL *curl;
  2.   CURLcode res;

  3.   curl_global_init(CURL_GLOBAL_ALL);

  4.   curl = curl_easy_init();
  5.   if(curl) {
  6.     /* get the first document */
  7.     curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/");
  8.     res = curl_easy_perform(curl);

  9.     /* get another document from the same server using the same
  10.        connection */
  11.     curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/docs/");
  12.     res = curl_easy_perform(curl);

  13.     /* always cleanup */
  14.     curl_easy_cleanup(curl);
  15.   }
复制代码
意思是说:在init成功后,cleanup之前,curl handle会保持一个长连接,比如在完成http://example.com/的请求后,再请求http://example.com/docs/,没有断开连接。

我想问的是,curl handle能保持多个服务器的长连接么?
比如,请求了163.com/aaa 后,再请求sohu.com/aaa,接着又请求163.com/bbb,那么这里到163.com是否会保持长连接?

论坛徽章:
0
发表于 2012-06-26 17:19 |显示全部楼层
HTTP/1.1支持长连接,保持连接的时间貌似是由服务器决定的。

其实连接最花时间的是DNS解析,而CURL有DNS缓存设置项,这样也可以节约连接时间。

/*缓存DNS,单位(秒)*/
curl_easy_setopt(curl, CURLOPT_DNS_CACHE_TIMEOUT, 60 * 60 * 72);

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
发表于 2012-06-26 21:57 |显示全部楼层
我之前使用libcurl 的时候 一个CURL连接访问多个URL之后就不稳定了,我最后只好每次访问一个URL的时候创建一个连接

论坛徽章:
0
发表于 2012-06-27 08:57 |显示全部楼层
回复 2# 冷寒生


    感谢!

curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
    curl_easy_setopt(curl, CURLOPT_HEADER, 1L);
这两行代码看出来了,可以保持多个host的长连接。不过对能保持多少个还不是很清楚,还需要再看下libcurl的文档
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP