手机网游制造之请求处理篇
2009-10-11 00:00:00 来源:WEB开发网设计服务端网络协议
服务器端网络协议,最主要的功能就是将服务器端的处理结果数据反馈给客户端,从而控制客户端的逻辑行为。在设计服务器端网络协议时,需要考虑有几种反馈指令以及每种反馈需要反馈的参数等。此外,还要考虑如何减少数据的重复。
服务器端的网络协议中的成功指令用于响应客户端的准备指令,在客户端登录成功以后,向服务器端发送开始指令,如果服务器端无法匹配对战用户,则反馈继续等待指令,这样客户端将继续等待其他玩家。如果有其他玩家匹配或已经由服务器匹配给其他玩家对战,则反馈初始数据指令,并反馈服务器端生成的房间编号、初始地图数据、角色数据等。
在游戏开始以后,客户端每隔一定时间发出获得数据指令,服务器端反馈游戏刷新指令,将当前游戏数据反馈给客户端。客户端发送的移动指令等,直接在服务器端进行处理,不反馈指令。
请求处理设计步骤
第一步:创建项目
启动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);
更多精彩
赞助商链接