读书人

手机网络象棋开发(二):网络通信、逻辑

发布时间: 2012-10-28 09:54:44 作者: rapoo

手机网络象棋开发(2):网络通信、逻辑处理模块
上次简单介绍了Server的写法,这个类比较简单,主要的功能包括:
1. 初始化,包括玩家列表、游戏桌子列表
2. 接收手机客户端连接
3. 启动网络连接处理


今天主要介绍:网络通讯类和业务处理类

Network类:
主要负责:
1. 接收手机客户端的连接
按照协议读取数据后,添加到消息队列
此处需要处理同步问题
2. 取出消息队列,调用业务逻辑类进行处理
主要是根据消息的cmdType
3. 发送消息
依次读取发送消息队列的消息,
按照协议,依次将cmdType, playerId, msg.length, msg 发送到客户端

具体代码如下:



逻辑处理类LogicHandler.java

该类的主要功能
1. 去除消息队列的消息对象
2. 分析消息的cmdType
3. 然后分发给相应的消息处理方法进行处理
基本流程包括:
玩家注册:就是将玩家对象放入playerMap的哈希表待用
玩家坐下:根据发送过来的消息,更新桌子列表情况,然后返回消息
玩家请求开始:设置玩家的状态为开始,检查该游戏桌子的状态是否满足条件
满足的话,就开始游戏,并且调用相关的裁判类进行逻辑判断处理
玩家的棋子移动:根据具体的棋子坐标,更新裁判类的棋牌位置
其他还包括玩家退出、离开游戏等,目前还未完成。

详细查看代码:


注:很多代码参考了java项目全程实录

读书人网 >网络协议

热点推荐