当前位置: 首页 > news >正文

做党政板报的网站/品牌广告图片

做党政板报的网站,品牌广告图片,大庆做网站最厉害的人,让人做网站 需要准备什么之前已经分享过一篇基于Cocos2dx与服务器使用Socket进行通信的框架,还不太熟悉的请移步到如下博文中: 【C/S通信交互之Socket篇】Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架! 那么今天Himi来分享如何在cocos2dx中使用Htt…

之前已经分享过一篇基于Cocos2dx与服务器使用Socket进行通信的框架,还不太熟悉的请移步到如下博文中:

【C/S通信交互之Socket篇】Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架!

那么今天Himi来分享如何在cocos2dx中使用Http来访问Server端并且获取数据;

这里对于Server端,Himi选用,Jetty,对于Jetty不太熟悉的可以先自行baidu~google~是个servlet的容器。类似JSP。 什么是servlet?jsp? = =。不赘述了。大家手动好吧;

下面我们简单书写一个Server端(如何创建一个Jetty服务器请看Himi  Jetty 开发系列文章)

-----------首先服务器端--------------

这里就ibu写创建项目和配置项目的jar包 build path了。直接上主要代码段:

       首先是Jetty  Server主类:(这里Himi用的IDE 是 Eclipse)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
ServletServer.java
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import servlet.HServlet;
/**
 * @author Himi
 */
public class ServletServer {
    public static void main(String[] args) throws Exception {
        Server server = new Server(8080); 
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.setContextPath("/"); 
        server.setHandler(context); 
        context.addServlet(new ServletHolder(new HServlet()), "/himi"); 
        server.start();
        server.join();
    }
}

然后是我们的一个Servlet类:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
HServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * @author Himi
 */
public class HServlet extends HttpServlet {
    private static final long serialVersionUID = 1L; 
    public HServlet() {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("~~~~有一个Clinet访问!~~~~");
        //获取http Client端对应的两个字段的数据
        String name = request.getParameter("name");
        String password = request.getParameter("password");
        //设置字符编码
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html");
        response.setStatus(HttpServletResponse.SC_OK);
        response.getWriter().println("Server say: 测试中文:session=" + request.getSession(true).getId()); 
        if(name!=null) {
            response.getWriter().println("Server say:名字:"+name);
            System.out.println("Client say: name="+name);
        }
        if(password!=null) {
            response.getWriter().println("Server say:密码:"+password);
            System.out.println("Client say: password="+password);
        }
    }
}

我们的Servlet里,就是得到http clinet端传过来的数据返回回去。中间简单写给客户端一些简单字符串~

      OK,启动我们的Jetty服务器,右键ServletServer.java run,观察控制台:

?
1
2
2012-05-25 16:43:04.767:INFO:oejs.Server:jetty-8.1.3.v20120416
2012-05-25 16:43:05.110:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080

出现如上,表示你的Jetty Server启动成功;OK。然后设计客户端代码;

 

-----------然后cocos2dx Clinet端--------------

首先新建一个cocos2dx项目,这个不多说。然后在默认的HelloWorldScene.cpp 初始化函数替换如下代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
bool HelloWorld::init()
{
/*
 *@author By Himi
 */
    //
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
    CCLabelTTF* pLabel = CCLabelTTF::labelWithString("Hello World""Thonburi", 34);
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    pLabel->setPosition( ccp(size.width / 2, size.height - 20) );
    this->addChild(pLabel, 1);
    CURL *curl;
    CURLcode res;
    char buffer[10];
    curl = curl_easy_init();
    if (curl)
    {
//        curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:8080/himi");
        curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:8080/himi?name=xiaoming&password=李华明");
        res = curl_easy_perform(curl);
        /* always cleanup */
        curl_easy_cleanup(curl);
        if (res == 0)
        {
            pLabel->setString("0 response");
        }
        else
        {
            sprintf(buffer,"code: %i",res);
            pLabel->setString(buffer);
        }
    }
    else
    {
        pLabel->setString("no curl");
    }
    return true;
}

OK,然后我们导入 curl.h头文件:

?
1
#include "curl/curl.h"

还没完,这时候提示我们找不到这个头文件,OK,继续操作两步如下:

1.   加入 libcurl.a 文件:(此文件默认在cocos2dx引擎包下的cocos2dx/platform/third_party/ios/libraries文件夹下)

别着急这时候还会提示头文件找不到;

在xcode中点击你的cocos2dx项目,然后选择你项目的 targets,然后在Build Settings中找到 Search Paths:

双击你的 Library Search Paths 观察:如下图:

 

下面那个"$...../third_party/ios/libraries"路径是你第一步添加lib curl.a的时候默认添加的。这个我们不要修改;但是请双击这个路径然后copy下来;

我们需要修改的是此属性的上一个属性,Header Search Paths;

双击Header Search Paths属性后面的连接,然后点击“+”号添加一个路径,这个路径就是刚才你copy的路径,但是粘贴后还要将此路径设置到上一个文件夹的路径;这么说有点绕,其实就是如下:

假设你之前copy的路径是  "$...../third_party/ios/libraries"

   那么你在这里粘贴的时候路径应该是: "$...../third_party/ios"

OK,Himi这里的路径也截图给大家一张便于对比:

 

OK,如果以上步骤都操作正常那么编译将没有任何问题;

编译成功后,command+R运行项目,观察xcode控制台打印,以及服务器端打印:正常情况下应该如下:

 

OK,一切正常;

       注意:用脚本新建的工程,默认是不加libcurl的,大家编译到其他平台的时候要修改makefile文件将其添加进去;(具体可以参考tests里面的makefile ) 

       提醒 :这里客户端与服务器只是简单的http交互,没有更细节的处理,例如 Client端访问应该另起一个线程,交互的时候数据要有一定的协议规范等等这些在介绍Socket的时候都有说过了,这里就不多说了; 





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/969799,如需转载请自行联系原作者
http://www.jmfq.cn/news/4824091.html

相关文章:

  • php网页制作教程/重庆seo扣费
  • 加盟餐饮网站建设/天津百度推广开户
  • 深圳响应式网站开发/网站运营推广选择乐云seo
  • 途牛网电子商务网站建设分析/网页搜索快捷键
  • ps做网站心得/深圳百度推广电话
  • 武汉个人做网站厂家/互动营销是什么
  • 做网站开发学什么内容/高级搜索入口
  • 购物网站开发的描述/自建站seo如何做
  • 网站接单平台/站长网站大全
  • 重庆川九建设有限责任公司官方网站/南宁seo优化
  • 宽屏大气企业网站源码/76人vs猛龙
  • jrs直播网站谁做的/丽水网站seo
  • 泉州网站建设技术公司/广州:推动优化防控措施落地
  • 怎么手动安装网站程序/新闻平台发布
  • 网上国网推广方案怎么写/福州seo管理
  • 沈阳外贸网站建设/广告开户南京seo
  • 做网站需要平台/广东东莞疫情最新消息今天又封了
  • 慈溪做网站的公司/青岛网络推广公司哪家好
  • 北京微网站建设设计服务/品牌线上推广方式
  • 做爰全过程的视频的网站/国家高新技术企业
  • 建网站用什么工具/百度客户端登录
  • 网站开发部署/网店seo关键词
  • 对新网站做seo大概需要多久/竞价账户托管哪家好
  • 哈尔滨口碑好的网站建设/百度网盘搜索引擎入口哪里
  • 雅安网站制作/西安百度推广公司
  • 自己ip做网站/神马seo服务
  • python做网站开发/子域名大全查询
  • 个人介绍微电影网站模板/临沂森佳木业有限公司
  • 长沙做网站建设公司排名/新闻20条摘抄大全
  • 自己创建网站/网络服务器的功能