cocos2dx-网络连接客户端部分学习

最近在做学校的课题设计,我是做一个需要网络传输数据的cocos2dx游戏,这两天就在看网络连接部分。

服务器端有同学做好了,用的是y11框架,代码用php写。我需要做的是在客户端部分的登录、注册,游戏出场阵容的上传和下载,和比赛结果的上传。

我是用引擎的httprequest。我从网上查了些资料,大家首先看注册的方法的内容:

HttpRequest* request = new HttpRequest();
    request->setUrl("地址");
    request->setRequestType(HttpRequest::Type::POST);
    request->setResponseCallback(this, httpresponse_selector(Register::onHttpRequestCompleted));

    char postData[500]="";
    sprintf(postData, "username=%s&password=%s", editBoxname->getText(), editBoxPassword->getText());
    request->setRequestData(postData, strlen(postData));

    request->setTag("POST test1");
    HttpClient::getInstance()->send(request);
    request->release();

这里post和get的区别就是地址后面有没有参数,get是写在后面的,post是放在了请求数据里。

如果请求成功,就调用onHttpRequestCompleted回调函数。

if (!response) {
        return;

    }

    if (0 != strlen(response->getHttpRequest()->getTag())) {
        log("%s completed", response->getHttpRequest()->getTag());
    }

    long statusCode = response->getResponseCode();
    char statusString[64] = {};

    sprintf(statusString, "HTTP Status Code: %ld, tag = %s", statusCode, response->getHttpRequest()->getTag());
    //log("response code: %ld", statusCode);
    log("%s",statusString);

    if (!response->isSucceed()) {
        log("response failed");
        log("error buffer: %s", response->getErrorBuffer());
        return;

    }

    std::vector<char>* buffer = response->getResponseData();
 
    std::string  infoStr = "";

    infoStr = std::string(buffer->begin(), buffer->end());

    log("info: %s", infoStr.c_str());

    这里response->getResponseData()就是获取接收到的数据,这个数据如果是json就解析一下。


   具体原理请看这篇文章http://blog.csdn.net/duotianshi86/article/details/10216383,是以cocos2dx2.x的版本来看的,但基本原理应该是不变的。


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值