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

来源:互联网 发布:淘宝钻石展位收费标准 编辑:程序博客网 时间:2024/05/21 19:07

最近在做学校的课题设计,我是做一个需要网络传输数据的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 0
原创粉丝点击