GameHall-Commons定义了两个规范:
第一,客户端与服务器进行信息传输的时候,只能使用Request和Response对象所生成的XML字符串;
第二,每个放在该框架中的游戏都必须提供一个实现Game接口的游戏实现类,为游戏提供一个入口。
GameHall-Server模块:
实现了该模块后,这个服务器模块就可以不再需要作改动,即使加入新的游戏,它也可以不用进行代码改变。
GameHall模块只是服务器端负责处理转发的一个中间角色,它不负责处理任何的业务逻辑。
由于在ServerThread中,需要使用反射来得到某个服务器处理类,
因此,当加入一些新的游戏时,就需要将这些游戏的模块加入到环境变量中。
一些公用的接口或者类,可以使用一个GameHall-Commons的模块来存放
例如可以将Request、Response、ServerClass、ClientClass、User和Game等接口与类放到GameHall-Commons模块中,
客户端与服务器端的模块都依赖于GameHall-Commons模块。
GameHall-Client中
game目录读取所有的jar包,再读取各个元数据文件(MANIFEST.MF文件),得到里面声明的Game-Class属性,
再通过反射将这个属性值转换成具体的某个Game的实现类。这个Game-Class属性的值就是该游戏的入口类。
这样做无形之中为框架所加载的包加入了限制,
如果是一个游戏客户端的包,就必须在MANIFEST.MF文件中声明Game-Class属性,这个属性定义该游戏的入口类。
到此,游戏大厅的基本框架已经完成,在这个框架的基础上开发各种游戏的前提是必须遵守该框架定义的一些规则。
这些规则包括:
1.每个游戏都必须提供一个游戏入口类(Game接口的实现类);
2.每个游戏打成jar包后,都需要在MANIFEST.MF文件中加入Game-Class属性来声明游戏入口类;
3.客户端向服务器发送信息时,必须是代表一个Request对象的XML字符串;
4.服务器向客户端发送信息时,必须是代表一个Response对象的XML字符串。
fivechess-commons的模块 五子棋的游戏大厅中包括的一系列对象,包括桌子、位置等
fivechess-commons模块 保存游戏大厅的几个对象
fivechess-client的模块,表示五子棋游戏大厅的客户端
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
开发了一个游戏大厅的框架,该框架主要用于处理服务器与客户端之间的信息传输,并且在些基础上开发了一个五子棋的游戏大厅与一个简单的聊天室。讲解Sokcet编程的相关知识点。在开发五子棋游戏大厅时,主要讲解了五子棋游戏大厅的实现原理。本章的重点是游戏大厅框架的开发,让我们的这个游戏大厅框架可以做到动态的加载游戏,让玩家选择进入的游戏,当加入其他游戏时,该框架并不需要对原来的代码进行修改,按照一定的规则就可以加入新的游戏。 个人觉得,这个实战例子在编写时候 1、对象是个特别值得关注的重点 2、才是框架 3、是对应的响应,真详细。 下步进行3个框架学习去了,可能较长时间不会有新的代码上传了,推荐大家在练习这15个Java SE例子前再复习下9个模式,更加深理解!
资源推荐
资源详情
资源评论
收起资源包目录
仿制QQ游戏大厅(练手项目十五) (188个子文件)
GamePanel.class 14KB
HallPanel.class 9KB
LoginFrame.class 7KB
ChessFrame.class 6KB
TakeChessAction.class 5KB
GameHallFrame.class 5KB
ChatPanel.class 4KB
UserTable.class 4KB
Table.class 4KB
UserSitDownAction.class 4KB
ReadyAction.class 3KB
ServerThread.class 3KB
LeaveGameAction.class 3KB
EnterGameAction.class 3KB
ClientInAction.class 3KB
ClientThread.class 3KB
SendMessageAction.class 3KB
GameMessageAction.class 2KB
DrawAction.class 2KB
RefuseDrawAction.class 2KB
ChessContext.class 2KB
NewUserInAction.class 2KB
AgreeDrawAction.class 2KB
LostAction.class 2KB
ChessGame.class 2KB
HeadComboBoxRenderer.class 2KB
Chess.class 2KB
User.class 2KB
LoginAction.class 2KB
LeaveGameAction.class 2KB
ReceiveInAction.class 2KB
Request.class 2KB
OpponentEnterAction.class 2KB
ReceiveUserSitDownAction.class 2KB
ChessUser.class 2KB
OpponentEnterAction.class 2KB
OpponentExitAction.class 1KB
ChessFrame$1.class 1KB
ImageUtil.class 1KB
Seat.class 1KB
TakeChessAction.class 1KB
Response.class 1KB
StartGameAction.class 1KB
UIContext.class 1KB
GameHallInfo.class 1KB
OpponentReadyAction.class 1KB
UserTableCellRenderer.class 1KB
ReceiveMessageAction.class 1KB
ReceiveMessageAction.class 1KB
RefuseDrawAction.class 1KB
DrawAction.class 1KB
FiveChessErrorCode.class 1KB
Server.class 1KB
GamePanel$1.class 1005B
HallPanel$1.class 1004B
GamePanel$2.class 1001B
HallPanel$2.class 1000B
XStreamUtil.class 978B
OpponentLostAction.class 954B
AgreeDrawAction.class 937B
ChatPanel$1.class 926B
LostAction.class 922B
WinAction.class 918B
LoginFrame$2.class 799B
ImageUtil.class 790B
LoginFrame$1.class 777B
StartGameTask.class 683B
Main.class 464B
ErrorCode.class 463B
Main.class 460B
ChessClientContext.class 422B
ClientException.class 420B
ServerException.class 410B
ServerAction.class 246B
ClientAction.class 193B
Game.class 171B
.classpath 579B
blackDisk.gif 2KB
whiteDisk.gif 2KB
tool-draw-lost.gif 2KB
104.gif 2KB
selected.gif 2KB
1.gif 2KB
139.gif 2KB
159.gif 2KB
349.gif 2KB
379.gif 2KB
3.gif 2KB
219.gif 2KB
359.gif 2KB
119.gif 2KB
2.gif 2KB
389.gif 2KB
4.gif 1KB
209.gif 1KB
383.gif 1KB
109.gif 1KB
419.gif 1KB
393.gif 1KB
339.gif 1KB
共 188 条
- 1
- 2
资源评论
- xhw792021-05-20我这是这个错误。。。。
- XerCis2017-12-12大神,我运行了Server的Main后再运行Client的Main后报异常:java.lang.ClassNotFoundException: org.crazyit.gamehall.chatroom.client.ChatIndex
- i56j872016-07-18java的,我还以为c++呢
小行星0906
- 粉丝: 7
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于arduino开发的blockly图形化编程软件.zip
- LOGO检测-基于DETR目标检测算法实现的LOGO标志检测识别-附流程教程+项目源码-优质项目实战.zip
- bnaidr.plist
- 华中农业大学python-Day36-40.rar
- 华中农业大学pythonpython-Day31-35.rar
- 服务器概述服务器概述服务器概述服务器概述.txt
- 华中农业大学python实验题.txt
- 海康威视相机采图交叉编译示例程序,c++
- DETR-基于Tensorflow实现DETR目标检测算法-附流程教程+项目源码-优质项目实战.zip
- 3d激光slam地图发布程序,3d地图点云处理,c++程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功