- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2006 《Java高级程序设计》 专业教程 理论讲解部分 Ver 3.1 protected void shutdown() { consoleReader.shutdown(); super.shutdown(); } protected void processIncomingEvents() { GameEvent inEvent; while (inQueue.size() 0) { try { inEvent = inQueue.deQueue(); switch (inEvent.getType()) { case GameEventDefault.S_LOGIN_ACK_OK: break; case GameEventDefault.SB_LOGIN: stdOut( login: + inEvent.getMessage()); break; 6.2 类的设计 6 网络服务器的实现 case GameEventDefault.SB_LOGOUT: stdOut( logout: + inEvent.getMessage()); break; case GameEventDefault.SB_CHAT_MSG: stdOut( inEvent.getPlayerId() + : + inEvent.getMessage()); break; case GameEventDefault.S_DISCONNECT: stdErr(disconnected from server: +inEvent.getMessage()); shutdown(); break; case GameEventDefault.S_JOIN_GAME_ACK_OK: stdOut( inEvent.getMessage()); inGame = true; break; 6.2 类的设计 6 网络服务器的实现 case GameEventDefault.S_JOIN_GAME_ACK_FAIL: stdOut( inEvent.getMessage()); inGame = false; break; case GameEventDefault.SB_PLAYER_QUIT: stdOut( inEvent.getMessage()); inGame = false; break; default: stdOut( inEvent.getMessage()); break; } } catch (InterruptedException ie) {} } } 6.2 类的设计 6 网络服务器的实现 * 第7章 Java网络游戏框架 * 课程概述 网络游戏服务器架构的目标及策略 架构的设计 剪子 包袱 捶服务器端的实现 剪子 包袱 捶客户端的实现 重点 架构的设计 难点 架构的实现 学习目标 学习网络游戏架构 掌握架构的设计及实现 利用架构实现网络游戏 1设计目标及策略 简易性: 可扩展性: 可测量性: 高性能: 核心类应该被设计的简易 合理. 一个服务器程序可以为多个种类游戏提供服务 服务器同时需要处理非常多的网络连接,必须要可测量. 服务器要实现最快的信息流通.一个较慢的事件处理不能影响其他的事件处理. 为了实现以上目的,我们首先要做到以下几点: ◎将流通的消息压缩成GameEvents(游戏事件) ◎将实现与逻辑分离开 ◎将服务过程分离成各种的线性任务 ◎将各种任务在线程池(thread pool)中备份以便实现并行操作 ◎从任务中分离出事件(event)序列 ◎提供一个可以在同一个服务器程序上实现多个游戏 的逻辑框架 1 设计目标及策略 2 设计 服务器与客户端的通讯流程如下图:
文档评论(0)