我们在学习Cocos2d-x的时候经常会需要配置服务端与客户端的网络通讯,本篇教程将作为一个Cocos2D-X的网络实例,来为大家讲解如何实现Cocos2D-X服务器的网络通信编程。
这里采用Apache+php搭建了一个简易服务器,服务端用php语言,客户端采用cocos2d-x的CCHttpClient类通过http方式访问服务端资源。模拟了cocos2d-x提交账户和密码到服务端,服务端校验帐号密码,如果正确返回客户端成功登录,如果错误则返回错误信息,同时在服务端后台保存登录log。第一次接触php,语法上和C/C++还是蛮像的,主要是给出一个cocos2d-x网络实例,代码中并没有做一些防呆纠错措施。
1.搭建Apache+php网页服务器
下载Apche2.2 x86版,下载php5.2.17版,搭建过程我就不详细说了,大家可以在网上看到更详细的教程,这里就不安装MySQL了。
搭建成功后,打开http://127.0.0.1,就可以看到"It' works!"字样。同时打开Apache monitor监控Apache处于运行状态。我这里使用的cocos creator80端口。
2.php收集表单的方式
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE,对应着查改增删,这里介绍GET和POST。
用$_GET获取表单数据,表单数据对任何人都是可见的,比如
http://www.w3school.com.cn/welcome.php?username=jackystudio&password=123
用$_POST获取表单数据,表单数据则是不可见的,比如
http://www.w3school.com.cn/welcome.php
3.服务器php处理代码
这里我直接修改了主页index.html。会C++应该都能看懂,先是打开一个log.txt,接收到username和password,如果是username是jackystudio,password是123的话,把username和password写入log.txt,并返回登录成功,如果username或password错误时返回登录失败。如果未接收到则返回没有用户名密码。
3.1.采用get方式代码
3.2.采用post方式代码
4.cocos2d-x使用CCHttpClient类进行网络请求
CCHttpClient的使用这里也不赘述了,请移步官方文档How_to_use_CCHttpClient。这里在c语言上文编辑框和点九图的基础上进行了修改。2个编辑框,分别是username和password。一个按钮点击发送请求。一个文本显示从服务器返回的结果。
4.1.按钮请求处理
4.2.响应回调处理
5.1.Apache运行(Get和Post两种效果都是一样的)
(1)帐号密码正确时
(2)帐号密码错误时
5.2.关闭Apache
今天的课介绍了Cocos2D-X服务器的网络通信编程的注意事项和要点,希望对大家有帮助。有什么讲的不好的,欢迎大家探讨。我们下期见。