cocos2dx网络传输之CURL
来源:互联网 发布:淘宝ifashion怎么报名 编辑:程序博客网 时间:2024/05/16 18:16
CURL是一个免费开源的网络传输库支持FTP、HTTP、LDAP等多种传输方式,它存在两套核心接口:单线程传输的阻塞方式和非阻塞方式。
单线程传输的阻塞方式
其使用方式比骄傲简单,其接口也都是前缀为curl_easy_的形式,常见API如下
CURL *curl_easy_init(void); //初始化CURLcode curl_easy_setopt(CURL *curl,CURLoption,...); //设置传输参数CURLcode curl_easy_perform(CURL* curl);//执行当前传输void curl_easy_cleanup(CURL *curl);//清理
在这里我们有必要对CURLcode curl_easy_setopt(CURL *curl,CURLoption)做一个详细的介绍,它通过定义不同的枚举常量传递参数设置。并且它设置的是一个状态值,一次设置后除非修改,否则将保存上次设置的属性。
其中常见属性如下(不足的可以查看API)
CURLOPT_URL //URL地址值CURLOPT_WRITEFUNCTION //将得到的数据传递给相应的函数里CURLOPT_WRITEDATA //将函数传递给相应的第四个参数里CURLOPT_HEADER //如果设置为1,可以返回HTTP头的值,如果设置为非0值,则可以把一个头包含在输出中CURLOPT_INFILESIZE // 如果你需要上传一个文件到远程站点,这个选项告诉PHP你上传文件的大小CURLOPT_TIMEOUT //设置一个长整数型,作为最大延续多少秒CURLOPT_LOW_SPEED_LIMIT //设置一个长整数型,控制传送多少字节CURLOPT_COOKIE //传递一个包含HTTP Cookie的头文件CURLOPT_CUSTOMREQUEST //当进行HTTP请求时,传递一个字符被GET和HEAD使用CURLOPT_FILE //传送的输出文件CURLOPT_INFILE //传送过来的输出文件CURLOPT_WRITEHEADER //输出的头部分CURLOPT_PROXYUSERPWD //传递一个[user]:[psw]格式的字符串去连接HTTP 代理CURLOPT_POSTFIELDS //传递一个作为HTTP POST操作的所有数据的字符串CURLOPT_REFERER //在HTTP请求中包含一个referer头的字符串CURLOPT_USERAGENT //在HTTP请求中包含一个user-agent头的字符串CURLOPT_FTPPORT //传递一个包含被FTP POST指令使用的IP地址
非阻塞传输
非阻塞传输允许并行地进行多个网络请求,其主要接口如下
CURLM *curl_multi_init(void);CURLMcode *curl_multi_add_handle(CURLM *multi_handle,CURL *curl_handle); //添加一个传输一个请求CURLMcode *curl_multi_perform(CURLM* multi_handle,int *running_handles);CURLMcode *curl_multi_cleanup(CURLM *multi_handle);
非阻塞传输搭建在阻塞传输的基础上,因此也比较简单。
首先,我们利用初始化函数初始化一个CURLM对象
然后初始化若干个CURL对象,并通过
CURLMcode *curl_multi_add_handle(CURLM *multi_handle,CURL *curl_handle)
将其添加到CURLM对象中。
最后我们调用 curl_multi_perform函数即可。
0 0
- cocos2dx网络传输之CURL
- cocos2dx之curl下载
- Linux命令之curl - 强大的网络传输工具
- Linux命令之curl - 强大的网络传输工具
- 网络传输工具cURL和libcurl
- Curl之网络代理
- 网络传输之网络协议
- cocos2dx 网络编程(CCHttpRequest和CURL两个方式)
- cocos2dx 网络编程(CCHttpRequest和CURL两个方式)
- cocos2dx 网络编程(CCHttpRequest和CURL两个方式)
- cocos2dx 网络编程(CCHttpRequest和CURL两个方式)
- cocos2dx 3.2 Http网络连接,curl 库的介绍
- cocos2dx 网络编程(CCHttpRequest和CURL两个方式)
- 【Shell】网络利器之 curl
- 强大的网络传输工具cURL和libcurl
- 强大的网络传输工具cURL和libcurl
- CURL 远程网络服务器日志传输失败的错误代码列表
- Linux/C-网络信息传输:cURL-HTTP协议发送信息
- [坑] Computer Systems
- 使用ifstream ofstream重定向输入输出 c++
- CentOS上可用的nginx启动脚本
- fedora20给firefox安装flash插件
- java 调用WebService服务接口
- cocos2dx网络传输之CURL
- ubuntu下使用VNC连接树莓派raspberry
- DAY08------java数组、操作、冒泡、排序、array类、for each(全)
- java入门一DAY09------java 面向对象全面总结
- 20140403
- Nginx配置文件详细说明
- nginx.conf中文详解
- hdu 1002 A + B Problem II
- Pick numbers