cocos2d-x 开发网络游戏(http post&socket)
2012-07-20 09:31
375 查看
猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢!
原文地址: http://www.cocos2dev.com/?p=274
最近开发一个手机版的多人在线游戏,和服务器通讯要用到socket长连接和http短连接。刚好这几天有不少人问我这方面的知识。我今天就给大家讲下吧。
大家应该知道在cocos2d-x上面使用socket一般有BSDSocket,http一般用curl,但实际用的过程中还是有很多问题。之前也有很多人写过这方面的教程,我就不重复了,我说下我自己在项目中使用的。
Socket我使用boost,http请求使用libhttp。
socket比较麻烦,先说libhttp吧。
一、libhttp的使用方法:
1、首先去网上下载这三个资源文件:curl、jsoncpp、libhttp。
2、下载好后,将他们加到自己的工程libs目录下。
http请求:(这是异步请求)
里面设计到的函数在这几个头文件中
#include "json.h"
#include "Http.h"
Json::Value BYGameApiRequest::gameLogin(const std::string &name,const std::string &psw){
RequestParam params;
// params就是存放需要post到服务器的数据
// params.addParam("name", name);
// params.addParam("psw",psw);
Response response;
m_request->syncRequest(BY_GAME_API_URL+BYMethod::GAME_LOGIN+"?userId="+name, Request::Post, params, &response);
Json::Value root=NULL;
Json::Reader reader;
// cout << response.getRawData();
string res=string(response.getRawData(),response.m_rawDataSize);
reader.parse(res.c_str(), root, false);
return root;//这就是服务器返回的json数据格式。
}
上面的这个方法,就可以实现和服务器的post请求,这个函数一般放在什么地方好呢?
我的建议是,在游戏工程中建立一个单例类GameAPIRequest,这个单例类就负责请求所有的api数据,一般请求的api是有自己公司定义的格式的,所以所有的函数、参数,我建议建立一个Config和Method的配置类,专门宏定义格式给GameAPIRequest使用。
这样服务器修改了格式什么的,只需要在配置类中修改就可以了。
二、socket使用方法:
添加boostframework库到libs,这个需要自己将boost打包成.framework
汗.....这个需要自己实现的是在太多了,我改天从我项目中把代码抽出来新建个demo工程。不好意思咯。有空闲时间的朋友可以自己找资料学学看。
原文地址: http://www.cocos2dev.com/?p=274
最近开发一个手机版的多人在线游戏,和服务器通讯要用到socket长连接和http短连接。刚好这几天有不少人问我这方面的知识。我今天就给大家讲下吧。
大家应该知道在cocos2d-x上面使用socket一般有BSDSocket,http一般用curl,但实际用的过程中还是有很多问题。之前也有很多人写过这方面的教程,我就不重复了,我说下我自己在项目中使用的。
Socket我使用boost,http请求使用libhttp。
socket比较麻烦,先说libhttp吧。
一、libhttp的使用方法:
1、首先去网上下载这三个资源文件:curl、jsoncpp、libhttp。
2、下载好后,将他们加到自己的工程libs目录下。
http请求:(这是异步请求)
里面设计到的函数在这几个头文件中
#include "json.h"
#include "Http.h"
Json::Value BYGameApiRequest::gameLogin(const std::string &name,const std::string &psw){
RequestParam params;
// params就是存放需要post到服务器的数据
// params.addParam("name", name);
// params.addParam("psw",psw);
Response response;
m_request->syncRequest(BY_GAME_API_URL+BYMethod::GAME_LOGIN+"?userId="+name, Request::Post, params, &response);
Json::Value root=NULL;
Json::Reader reader;
// cout << response.getRawData();
string res=string(response.getRawData(),response.m_rawDataSize);
reader.parse(res.c_str(), root, false);
return root;//这就是服务器返回的json数据格式。
}
上面的这个方法,就可以实现和服务器的post请求,这个函数一般放在什么地方好呢?
我的建议是,在游戏工程中建立一个单例类GameAPIRequest,这个单例类就负责请求所有的api数据,一般请求的api是有自己公司定义的格式的,所以所有的函数、参数,我建议建立一个Config和Method的配置类,专门宏定义格式给GameAPIRequest使用。
这样服务器修改了格式什么的,只需要在配置类中修改就可以了。
二、socket使用方法:
添加boostframework库到libs,这个需要自己将boost打包成.framework
汗.....这个需要自己实现的是在太多了,我改天从我项目中把代码抽出来新建个demo工程。不好意思咯。有空闲时间的朋友可以自己找资料学学看。
相关文章推荐
- cocos2d-x 开发网络游戏(http post&socket)
- cocos2d-x 开发网络游戏(http post&socket)
- cocos2d-x 开发网络游戏(http post&socket)
- cocos2d-x网络开发基础 HTTP的报文格式、GET和POST格式解析
- 【Cocos2d-x 游戏开发】HttpClient制作网络游戏
- 利用TCP Socket编程开发网络游戏(一)
- iOS 开发之 网络编程(HTTP协议,NSURL-get post)
- Android学习笔记(十一)Android网络编程之Socket&Http
- Cocos2d—X游戏开发之(socket)Mac下网络抓包工具(Cocoa Packet Analyzer使用教程)
- 网络编程-http连接-GET&POST
- cocos2d 游戏开发:Cocos2d v3 "hello world"+显示飞船
- 【iOS-cocos2d-X 游戏开发之十一】New CCSprite()带来的错误&使用CCUserDefault及pvr.ccz在Cocos2dx中要注意!
- 【Cocos2d-x游戏引擎开发笔记(24)】CURL实现get和post联网
- 【Cocos2d-x游戏引擎开发笔记(21)】CCHttpRequest联网
- iOS-cocos2d-X 游戏开发之七】整合Cocos2dX的Android项目到Xcode项目中,Xcode编写&编译代码,Android导入打包运行即可!
- Amf3+socket开发网络游戏或应用的一点研究心得
- Android网络编程之Socket&Http
- Android网络编程之Socket&Http
- 直接使用socket_TCP进行网络游戏开发
- 【iOS-Cocos2d游戏开发之九】讲解CCSpriteBatchNode与TP工具的".pvr.ccz",".plist"共用的终极精灵优化及注意事项!