WEB开发网
开发学院软件开发Java 手机网游制造之请求处理篇 阅读

手机网游制造之请求处理篇

 2009-10-11 00:00:00 来源:WEB开发网   
核心提示: 设计服务端网络协议服务器端网络协议,最主要的功能就是将服务器端的处理结果数据反馈给客户端,手机网游制造之请求处理篇(2),从而控制客户端的逻辑行为,在设计服务器端网络协议时,点击“Finish”完成游戏线程类的创建,该类读取客户端发送数据以及向客户端发送数据,需要考虑有几

设计服务端网络协议

服务器端网络协议,最主要的功能就是将服务器端的处理结果数据反馈给客户端,从而控制客户端的逻辑行为。在设计服务器端网络协议时,需要考虑有几种反馈指令以及每种反馈需要反馈的参数等。此外,还要考虑如何减少数据的重复。

服务器端的网络协议中的成功指令用于响应客户端的准备指令,在客户端登录成功以后,向服务器端发送开始指令,如果服务器端无法匹配对战用户,则反馈继续等待指令,这样客户端将继续等待其他玩家。如果有其他玩家匹配或已经由服务器匹配给其他玩家对战,则反馈初始数据指令,并反馈服务器端生成的房间编号、初始地图数据、角色数据等。

在游戏开始以后,客户端每隔一定时间发出获得数据指令,服务器端反馈游戏刷新指令,将当前游戏数据反馈给客户端。客户端发送的移动指令等,直接在服务器端进行处理,不反馈指令。

请求处理设计步骤

第一步:创建项目

启动Eclipse,选择“File→New→Java Project”,设置项目名称为“BomberServer”,并一路选择“Next”, 完成项目的建立。然后新建一个入口类,选择“File→New→Class”,设置名称为“Server”,点击“Finish”。创建项目的代码下载地址是http://www.shudoo.com/bzsoft。

第二步:设计游戏线程类

选择“File→New→Class”,并设置名称为“LogicThread”,点击“Finish”完成游戏线程类的创建,该类读取客户端发送数据以及向客户端发送数据。关键码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

//读取数据
       byte[] b = new byte[1024];
       is = s.getInputStream();
       int n = is.read(b); 
       byte[] request = getData(b,n);
       //数据错误处理
       if(request.length == 0){
              return;   //结束程序
       }
       //处理逻辑 
       byte[] response = doLogic(request);
       //如果反馈为null,则结束处理
       if(response == null){
              return;
       }
       //反馈给客户端
       os = s.getOutputStream();  
       //HTTP协议信息
       os.write("HTTP/1.1 200 OK\n\r".getBytes());
       os.write("accept:*.*\n\r\n".getBytes());
       os.write(response);

上一页  1 2 3 4  下一页

Tags:手机 网游 制造

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接