Xcode如何请求网络并从网络上获得资源
2015-10-27 22:49
686 查看
首先,需要添加cocos中的 curl文件,添加方式跟添加资源一样,当然这个是.h文件
cocos2d/external/curl/include/mac/curl // 引入资源文件
#include "curl.h" // 需要引入这个文件
//数据接收方法
// 这里的stream
不能是String定义的,似乎cocos自带的String并没有append函数
size_t MyServerTest::proData(char *ptr ,
size_t size , size_t num_Mem ,
std::string* str){
if(str ==
NULL)
return 0;
size_t s;
s = size*num_Mem;
// 在这里把 ptr的前s个字符赋值给 stream
,应该就是下面的receive
str->append(ptr,s);
return s;
}
void MyServerTest::menuCallBack(){
// 创建一个curl对象
CURL* curl =
curl_easy_init();
int res;
std::string receive;
char url[30] =
"192.168.0.107/helpGame.jpg";
// 这个url 是我电脑 资源库/webserver/document内的图片
res = curl_easy_setopt( curl ,
CURLOPT_URL , url );
// 这里的功能函数返回的事宜个 size_t类型的数据,传入的应该是个指针,所以加上了取地址符
curl_easy_setopt(curl,
CURLOPT_WRITEFUNCTION , &MyServerTest::proData);
// 这里的receive
也是取的地址,似乎cocos里数据类型都是传得指针
curl_easy_setopt(curl,
CURLOPT_WRITEDATA , &receive);
res = curl_easy_perform(curl);
// 表演的时候,也就是呼叫网络
if(CURLE_OK == res){
CCLOG("网络连接成功");
CCLOG("%s",receive.c_str());
auto img =
new Image(); // 定义一个img对象
img->autorelease();
// 生成该对象
unsigned
char* data = (unsigned
char *)receive.c_str(); // 将从网络返回的数据转化成无符号类型的char*数据
img->initWithImageData(data, receive.length());
// 载入图片资源,应该是在这里把网络返回的数据流转化的。
auto texture =
TextureCache::getInstance()->addImage(img,"helpGame.jpg");
auto sp =
Sprite::createWithTexture(texture);
sp->setPosition(320,480);
this->addChild(sp);
}
curl_easy_cleanup(curl);
}
cocos2d/external/curl/include/mac/curl // 引入资源文件
#include "curl.h" // 需要引入这个文件
//数据接收方法
// 这里的stream
不能是String定义的,似乎cocos自带的String并没有append函数
size_t MyServerTest::proData(char *ptr ,
size_t size , size_t num_Mem ,
std::string* str){
if(str ==
NULL)
return 0;
size_t s;
s = size*num_Mem;
// 在这里把 ptr的前s个字符赋值给 stream
,应该就是下面的receive
str->append(ptr,s);
return s;
}
void MyServerTest::menuCallBack(){
// 创建一个curl对象
CURL* curl =
curl_easy_init();
int res;
std::string receive;
char url[30] =
"192.168.0.107/helpGame.jpg";
// 这个url 是我电脑 资源库/webserver/document内的图片
res = curl_easy_setopt( curl ,
CURLOPT_URL , url );
// 这里的功能函数返回的事宜个 size_t类型的数据,传入的应该是个指针,所以加上了取地址符
curl_easy_setopt(curl,
CURLOPT_WRITEFUNCTION , &MyServerTest::proData);
// 这里的receive
也是取的地址,似乎cocos里数据类型都是传得指针
curl_easy_setopt(curl,
CURLOPT_WRITEDATA , &receive);
res = curl_easy_perform(curl);
// 表演的时候,也就是呼叫网络
if(CURLE_OK == res){
CCLOG("网络连接成功");
CCLOG("%s",receive.c_str());
auto img =
new Image(); // 定义一个img对象
img->autorelease();
// 生成该对象
unsigned
char* data = (unsigned
char *)receive.c_str(); // 将从网络返回的数据转化成无符号类型的char*数据
img->initWithImageData(data, receive.length());
// 载入图片资源,应该是在这里把网络返回的数据流转化的。
auto texture =
TextureCache::getInstance()->addImage(img,"helpGame.jpg");
auto sp =
Sprite::createWithTexture(texture);
sp->setPosition(320,480);
this->addChild(sp);
}
curl_easy_cleanup(curl);
}
相关文章推荐
- Meta http-equiv属性详解(转)
- Java一步一脚印—通过简单的TCP网络编程实现局域网的聊天对话
- iOS9.1 网络适配
- HTTP和HTTPS
- 《TCP/IP详解 卷一》读书笔记-----TCP persist &Keeplive timer
- Centos6.6网络配置方法
- 网络编程(了解客户端和服务器端原理)
- POJ 3436:ACM Computer Factory 网络流
- POJ 3436:ACM Computer Factory 网络流
- Android的http协议
- select函数详解
- ng机器学习——神经网络
- IOS网络笔记--地图内容4(定位到当前位置)
- socket网络编程复习笔记(四):认识套接字函数
- py 爬取页面http://m.sohu.com 并存储
- Unity--动态加载网络图片和本地图片文件
- http中content-type头值-(MIME类型)
- RESTful Web API中的Http协议语义
- 【Android网络编程】获取网络图片,具有缓存功能
- 【转】HTTP Response Header 的 Content-Disposition