将请求的接口的动作放在互斥锁中进行

   1:  
   2:  
   3: pthread_mutex_t mutex;
   4: pthread_t thread;
   5: sem_t * m_structSem;
   6:  
   7: struct SimpleStructure
   8: {
   9:     int data;
  10:     float otherData;
  11: };
  12:  
  13: void* ThreadFunction(void* arg)
  14: {
  15:     pthread_mutex_lock(&mutex);
  16:     SimpleStructure* args = (SimpleStructure*)arg;
  17:     
  18:     //todo...
  19:  
  20:     delete args;
  21:     pthread_mutex_unlock(&mutex);
  22:  
  23:     pthread_mutex_destroy(&mutex);
  24:     sem_destroy(m_structSem);
  25:  
  26:     return NULL;
  27: }
  28:  
  29: pthread_mutex_init(&mutex, NULL);
  30: m_structSem = sem_open(strThreadName.c_str(), O_CREAT, 0644, 0)
  31:  
  32: //
  33: SimpleStructure* args = new SimpleStructure();
  34: args->data = 1;
  35: args->otherData = 2.0f;
  36: //
  37: pthread_create(&thread, NULL, &ThreadFunction, args);
  38:  
  39:  

使用CURL(Cocos2d-x中将curl做为第三方库加入进来,它被放在cocos2dx/platform/third-party/win32的curl目录下)

   1: CURL * curl;
   2:  
   3: string strHtml;
   4: string strRetData = "";
   5:  
   6: //第一步:初始化CURL,取得初始化成功后的CURL指针。
   7: curl = curl_easy_init();
   8:  
   9: if (!curl)
  10: {
  11:     return false;
  12: }
  13:  
  14: CCLOG("Http get string, conn: %s, url: %s", strConnName.c_str(), strUrl.c_str());
  15:  
  16: curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, HttpWriteString);
  17: curl_easy_setopt(curl, CURLOPT_WRITEDATA, &strHtml);
  18: curl_easy_setopt(curl, CURLOPT_FAILONERROR, true);
  19: curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
  20:  
  21: //这里定义一个CURL库中API的返回值,用于取得API调用的结果。  
  22: CURLcode res;
  23:  
  24: //第二步,设定我们用此CURL指针来完成的动作。
  25: //参数一为CURL指针,参数二为相应的动作类型枚举,这个枚举值在curl.h中定义,比如本例中的CURLOPT_URL,定义为CINIT(URL,  OBJECTPOINT, 2),即联接一个网站的HTTP服务。
  26: //参数三为动作对应的数据参数,这里是网站的URL地址。  
  27: curl_easy_setopt(curl, CURLOPT_URL, strUrl.c_str());
  28:  
  29: ///第三步,执行上面设定的动作处理。返回结果放在res中。  
  30: res = curl_easy_perform(curl);  
  31:  
  32: //最后一步,清除CURL指针,结束对CURL库的使用。  
  33: curl_easy_cleanup(curl); 
  34:  
  35: if (res == CURLE_OK)
  36: {
  37:     strRetData = strHtml;
  38:  
  39:     CCLOG("Http get string, conn: %s, ret: %s", strConnName.c_str(), strRetData.c_str());    
  40: }
  41: else 
  42: {
  43:     //request error
  44: }
  45:  
  46: strRetData = "";
  47:  
  48: CC_SAFE_DELETE(curl);

参考:

How to use pthread

cocos2d-x中的CurlTest深入分析

cocos2d-x中的curl相关推荐

  1. PHP中使用cURL实现Get和Post请求的方法

    PHP中使用cURL实现Get和Post请求的方法,需要的朋友可以参考一下 1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等 ...

  2. 在PHP中使用CURL,“撩”服务器只需几行——php curl详细解析和常见大坑

    作为开发,妹子没得撩就"撩"下服务器吧,妹子有得撩的同学那就左拥妹子右抱服务器吧,况且妹子是要礼物的,服务器又不用.好啦,长话短说再长说,祭出今天的工具--CURL(Client ...

  3. php5.4curl报错,PHP中使用CURL报错解决方案 rip curl php curl开启 curl下

    准备使用CURL实现get和post方法时报错. Eg:CURL初始化时,报如下错误: Fatal error: Call to undefinedfunction curl_init() in C: ...

  4. php curl title,PHP中使用CURL获取页面title例子

    PHP中使用CURL获取页面title例子 发布于 2015-10-03 05:28:40 | 109 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...

  5. php的curl如何返回值,怎么在PHP中利用CURL获取返回值

    怎么在PHP中利用CURL获取返回值 发布时间:2021-01-05 16:58:39 来源:亿速云 阅读:96 作者:Leah 怎么在PHP中利用CURL获取返回值?针对这个问题,这篇文章详细介绍了 ...

  6. java curl get_如何从Java中的curl get请求获取文件?

    我正在尝试使用API​​下载一些XBRL文件.为了做到这一点,我需要做一个卷曲的请求,就像这样:如何从Java中的curl get请求获取文件? curl -XGET http://distribut ...

  7. PHP中的CURL函数库

    开启php curl函数库的步骤 1).去掉windows /php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路 ...

  8. PHP中使用CURL实现Get和Post请求方法

    1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL的一些高级特性, ...

  9. 在Linux中使用cURL进行HTTP POST和GET [复制]

    本文翻译自:HTTP POST and GET using cURL in Linux [duplicate] This question already has an answer here: 这个 ...

  10. 如何在PHP中使用cURL连接到Tor隐藏服务?

    本文翻译自:How can I connect to a Tor hidden service using cURL in PHP? I'm trying to connect to a Tor hi ...

最新文章

  1. java中用于选择按钮的语句_java程序员考试套题1
  2. swift:简单使用翻页控制器UIPageViewController
  3. php输出字符unicode码,[PHP]单字符Unicode编码解码函数
  4. Eclipse卸载Groovy Development tool时,为什么要去查询hana.ondemand.com的资源?
  5. 某互联网公司校园招聘的小组面试题
  6. context:annotation-config vs context:component-scan
  7. Spring Cloud教程–使用Spring Cloud Bus自动刷新配置更改
  8. python后台框架_我的第一个python web开发框架(14)——后台管理系统登录功能
  9. 二手交易平台html代码,二手物品交易HTML5模板
  10. IntelliJ IDEA 2019.1.1 预览版发布,以及对旧版本的更新
  11. 6.输入四个数,找出最大值方法二
  12. 【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(7)签到题5题
  13. [转载] 【Python】bytes数据类型
  14. oracle热点表online rename
  15. 【优化调度】基于matlab粒子群算法求解水电厂优化调度购电最小问题【含Matlab源码 1234期】
  16. linux user32.lib,Linux之#pragma的用法
  17. T检验和p-value含义及计算公式
  18. 计算机专业书读后感300字,读一本书读后感300字(精选9篇)
  19. 微信小程序实战–集阅读与电影于一体的小程序项目(二)
  20. Layman数字土地指南

热门文章

  1. 用Async函数简化异步代码
  2. Demo4 Slides.js的使用
  3. 在SQL2000怎樣用動態實現SQL2005的nvarchar(max)功能
  4. Dom操作xml的常用方法
  5. SSH远程管理(用户登录控制及密码验证)
  6. 《告别失控:软件开发团队管理必读》一一2.6 代系特点
  7. eclipse中开发python
  8. 运行JBoss 5.1.0 GA时出现Error installing to Instantiated:name=AttachmentStore state=Described错误的解决办法...
  9. OSChina 技术周刊第十六期 —— 每周技术精粹
  10. 转:java中数组与List相互转换的方法