ImageVerifierCode 换一换
格式:DOC , 页数:35 ,大小:3.95MB ,
资源ID:848329      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-848329.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于J2SE的CS架构的多人网络游戏对战平台的设计与实现.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于J2SE的CS架构的多人网络游戏对战平台的设计与实现.doc

1、河南大学本科毕业生学士学位论文目 录摘 要4ABSTRACT5第1章 绪 论11.1 课题来源11.2 课题背景11.3 国内外研究现状及分析11.4 开发环境一览21.4.1 Java概述21.4.2 MyEclipse 8.0简介31.4.3 MYSQL5.0简介31.4.4 Hibernate3.0简介3第2章 需求分析32.1 可行性分析32.2 系统总体功能模块42.3 系统业务流程52.3.1 客户端业务流程图62.3.2 服务器业务流程图72.4 数据操作流程图8第3章 概要设计93.1 系统运行总体流程93.2 数据库设计103.2.1 数据库逻辑设计113.2.2 数据库结构

2、设计113.2.3 关于用户头像的处理说明113.3 通信协议及端口设计123.3.1 通信协议的定义133.3.2 通信协议的三要素和特点133.3.3 通信协议端口133.3.4 TCP与UDP在网络通信中的区别133.3.5 通信协议及端口设计14第4章 详细设计与系统实现164.1 服务器模块设计164.1.1 登录164.1.2 服务器管理平台及网络通信174.1.3 服务器配置及邮件发送184.1.4 游戏币充值及在线用户管理194.1.5 聊天及聊天记录操作214.1.6 游戏地图管理214.1.7 公告管理与密码修改234.1.7 数据库操作244.2 客户端模块设计244.2

3、.1 登录相关244.2.2 客户端操作中心及网络通信264.2.3 游戏对战场景及聊天系统284.2.4 多矩形碰撞检测与实现29结 论30参考文献31摘 要基于J2SE的C/S架构的多人网络游戏对战平台是通过对多种网络游戏平台的分析研究,依托Java语言,借助MYSQL数据库和MyEclipse开发工具设计出的一个功能丰富的网络游戏对战平台。通过该系统客户端可以实现用户注册、登陆、在线聊天、游戏对战、道具商城、文件读写以及网络通信等功能;服务器端能实现登陆、用户管理、地图文件管理、用户充值、文件读写、在线聊天及网络通信等功能。本系统主要涉及Java程序画面的组织与实现、网络通信协议的规划、

4、数据库操作方法、文件读写、远程对象访问、邮件发送、基于TCP/IP的Socket安全网络通信、基于UDP的数据报的收发、广播消息应用技术、事件驱动等技术。通过各个模块之间的配合最终达到服务器提供各种服务,客户端连接到服务器使用各项服务的效果。关键词 游戏;Java;网络通信;对战平台;文件读写 第I页ABSTRACT The multiplayer Online game war platform based on J2SE C / S structure is through the analysis of research on a variety of online games plat

5、form, relying on the Java language, with a MYSQL database and MyEclipse development tools to design a feature-rich online games war platform. The system client can implement user registration, login, online chat, game battle, props Mall, document literacy, and network communication function; server-

6、side login, user management, map file management, user recharge, file read and write. online chat and network communications functions. This system is mainly involved in the organization and implementation of the Java program screen, the planning of the network communication protocols, database oper

7、ations, file read and write, remote object access, mail, secure network based on TCP / IP Socket communication, based on UDP datagrams to send and receive application technology of broadcast news, events, drivers, etc. technology. Eventually reach the server through the co-ordination between the var

8、ious modules provide various services to the client to connect to the server to use various services.Keywords: Game; Java; Network Communication War Platform; File Reading and Writing第II页 第 31 页 河南大学本科毕业生学士学位论文 第1章 绪 论人类进入21世纪,全球一体化,互联网就起到了重要的作用,而且随着互联网的不断发展,信息技术逐渐发展壮大,其中计算机网络通信的发展尤为迅速。在现今电子信息高速发展的时

9、代,网络游戏在当今互联网的发展过程中占据越来越重要的地位,一个开放的互联网游戏平台可以带给用户非凡的娱乐体验。本文通过对网络游戏及游戏大厅结构的分析,使用当前热门的程序开发语言Java,详细阐明了一个开放的游戏对战平台的设计过程。1.1 课题来源自命题。1.2 课题背景人类进入21世纪,全球一体化,互联网就起到了重要的作用,而且随着互联网的不断发展,信息技术逐渐发展壮大,其中计算机网络通信的发展尤为迅速。在现今电子信息高速发展的时代,网络游戏在当今互联网的发展过程中占据越来越重要的地位,一个开放的互联网游戏平台可以带给用户非凡的娱乐体验。本文通过对网络游戏及游戏大厅结构的分析,使用当前热门的程

10、序开发语言Java,实现了一个开放的游戏对战平台。1.3 国内外研究现状及分析 从1980年第一款坦克大战游戏Battle City诞生至今已有29年的历史,也发展出了很多的版本,从最初的红白游戏机到现在的网络游戏,从最开始的只支持双人游戏到现在的多人网络对战,从当初的平面2D到现在的立体3D游戏,这款游戏不断趋于网络化、立体化和多样化。网络化使得市场让游戏变成人与人的交战,而不再是人与电脑的对战,这样无疑增加了游戏的难度,游戏的时间和游戏的寿命。立体化是为了适应现在越来越3D的趋势,游戏有必要做的更加的完美,趋向3D并且加重环境的描写。多样性则是为了增加游戏的趣味性以及游戏的耐玩性。综合以上

11、因素,坦克大战无疑是一款经典之作。Java语言是当今最为流行的程序设计语言之一,作为一门非常优秀和健壮的编程语言,它同时具有面向对象、与平台无关、分布式应用、安全、稳定和多线程等优良的特征。通过Java语言不仅可以开发出功能强大的大型应用程序,而且Java语言本身突出的跨平台的特性也使它特别适合于Internet上的应用开发,可以说Java的出现使得所开发的应用程序“一次编写,处处运行”的愿望变成了可能。本课题就是通过对网络游戏平台的分析研究,依托Java语言,模拟开发出一个类似的、功能齐全的网络游戏平台,从而体会到Java在应用开发过程中的高效能。1.4 开发环境一览操作系统:Microso

12、ft Windows 7程序语言:J2SE开发工具:MyEclipse 8.0 数 据 库:MYSQL 5.0 其 他: Hibernate3.0(ORM模型) JDK1.6(Java开发工具包) ORM模型 Object Relational Mapping 简称对象联系模型1.4.1 Java概述它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak

13、,以“Java”的名称正式发布。 Java 编程语言的风格十分接近C、C+语言。Java是一个纯的面向对象的程序设计语言,它继承了 C+ 语言面向对象技术的核心,Java舍弃了C +语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java 不同于一般的编译执行计算机语

14、言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速度有了大幅提升。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软

15、公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。 1.4.2 MyEclipse 8.0简介MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J

16、avaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。1.4.3 MYSQL5.0简介MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的

17、SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。1.4.4 Hibernate3.0简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义

18、的是,Hibernate可以在应用EJB的J2EE架构中取代CMP(Container-Managed Persistence),完成数据持久化的重任。第2章 需求分析2.1 可行性分析可行性研究是在项目开发前期对项目的一种考察和鉴定,对拟议中的项目进行全面的、综合的调查研究,其目的是要判断项目可行与否。信息系统技术可行性研究要从系统开发的计划出发,论述系统开发力量的可行性,同时论证系统方案中所采取的各种技术手段上是否可以实现。信息系统经济可行性研究主要是对项目进行经济评价,分析系统建设投资的可能性以及评价系统运行之后给组织带来的效益。信息系统营运可行性研究要给出的方案是否可以从人力、物力、组

19、织工作等方面保证项目按计划完成实施,还要说明项目开发后在经济、技术和环境等方面能否保证系统正常运行。由于系统建设是一项投资大、涉及面广、工程复杂的系统工程,因此必须充分的进行可行性论证,以确保投资的准确无误,而且信息系统建设是一项整体工程,必须站在系统的角度论证它的可行性才有说服力,才有意义。可行性研究的目的是用最小的代价,在尽可能短时间内确定问题是否能够解决,它的目的不是解决问题,而是确定问题是否值得去解决。本课题所开发的系统采用了C/S结构和Internet网络技术,鉴于Java在网络应用开发以及用户界面设计上的优点,该系统在技术上完全可以实现预期的各种业务逻辑,因此该系统的开发实现完全是

20、可行的。2.2 系统总体功能模块 总体功能描述:总体模块图从全局的角度描述了整个系统要实现的功能,是系统的最终实现目标,也为开发人员指明了系统开发的方向。但这些功能尚处于“黑盒”阶段,并未给出具体的实现方法,需要开发人员根据需求编写出符合目标的代码。图 2-1 系统总体功能模块图2.3 系统业务流程 业务流程描述:用业务流程图描述现系统各项业务处理过程,并结合业务流程图 详细准确地说明业务处理过程中数据的收集、输入、传递、存储、加工的方法、算法、输出的数量及形式等。现行系统的业务流程图是分析和描述现行系统业务的重要工具之一。其主要作用是:描述现行系统的业务情况以便于与开发人员交流,它是系统设计

21、的前提和保证。2.3.1 客户端业务流程图图 2-2 客户端业务流程2.3.2 服务器业务流程图 图 2-3 服务器业务流程2.4 数据操作流程图 图 2-4 数据操作流程第3章 概要设计 经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。总体设计的基本目的就是回答“从总体上说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素-程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后进行详细的设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是

22、要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。3.1 系统运行总体流程图 3-1 服务器运行流程 管理员运行服务器,输入用户名和密码后确认登录系统,如果输入错误则需要返回登录页面继续输入。如果输入正确,则可以进入服务器综合管理的操作界面。这时,管理员可以执行服务器平台的各项管理功能。正常情况下为了保证用户正常游戏,服务器需一直保持开启状态,如需维护更新,管理人员可关闭客户端服务功能,退出服务器管理系统。图 3-2 客户端运行流程 首先,用户需要注册一个账号和密码,然后在登录画面输入已注册的账号密码。如果输入错误,则要重新回到登录画面输入正确的账号密码。如果输入正确,则可以进

23、入用户操作平台进行相应的操作。然后点击退出,用户退出本系统。需要注意的是,用户在注册账号时需要受到一定的限制,对于用户注册的ID、用户名、邮箱都有相关验证,如果验证不通过将在用户注册画面给用户以人性化的小提示。3.2 数据库设计“数据库”一词源于英文“Database”,直译为资料仓库,所以数据库实际上就是一个由大量资料所组成的集合。但是这些资料不是杂乱无章的堆积在一起,而是按照一定的规律和规则存储在计算机中。数据库的优点是很明显的, 它具有结构化的存储方式, 最小的空间冗余,而且在数据库中处理事务的程序与被处理的事务资料是分开存储的,这种独立性能够更好的保持资料的完整性和程序的可扩展性。数据

24、库系统为我们提供了一种把我们的工作和生活紧密相关的信息集合在一起的方法,它还提供在某个集中的地方存储和维护这些信息的方法。数据库系统主要由三大部分组成:数据库管理系统(DBMS是专门负责组织和管理资料信息的程序), 数据库应用程序(它使我们能够获取,显示和更新由DBMS存储的资料), 数据库(按一定结构组织在一起的相关资料的集合)。3.2.1 数据库逻辑设计数据库的逻辑设计即是表结构和表关系的设计,本系统的E-R图如下:图 3-3 数据库设计E-R图3.2.2 数据库结构设计本系统的表结构设计如下:1. 用户信息表( USER_TABLE) 【见表 3-1 用户信息表】2. 登录信息表(USE

25、R_LOGIN_TABLE) 【见表 3-2 登录信息表】3. 游戏角色表(TANK_TABLE) 【见表 3-3 游戏角色表】3.2.3 关于用户头像的处理说明 在请求注册成为该系统的用户时,需提交一张图片作为用户的头像信息。在服务端的处理中,并未将用户提交的图片直接存储于数据库中,而是作为图片文件保存于服务器运行时的目录下。对应的用户信息表中的用户头像(USER_IMAGE)字段存储的是图片的全称(即文件名和格式信息)。当用户再次登录系统时,服务器首先在数据库中查找到该用户头像图片的全称,根据全称将存储与目录下的图片通过网络传输给用户,至此完成用户头像图片的读写全过程。表 3-1 用户信息

26、表逻辑名物理名类型主键区分:否是用户IDUSER_IDvarchar(12)游戏币USER_COINint(4)校验码CHECK_CODEvarchar(4)用户名称USER_NAMEvarchar(12)用户邮箱USER_MAILvarchar(32)用户头像USER_IMAGEvarchar(50)表 3-2 登录信息表逻辑名物理名类型主键区分:否是用户IDUSER_IDvarchar(12)登录密码USER_PASSWORDvarchar(32)表 3-3 游戏角色表逻辑名物理名类型主键区分:否是用户IDUSER_IDvarchar(12)等级LEVEinteger经验EXPintege

27、r攻击力ATTACKinteger防御力DEFENSEinteger技能点SKILLPOINTinteger杀敌次数WINinteger死亡次数LOSTinteger地雷数目MINEinteger3.3 通信协议及端口设计 通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是协议。3.3.1 通信协议的定义 通信协议(communications protocol)是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,

28、信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。 通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。两台计算机在进行通信时,必须使用的通信协议 。3.3.2 通信协议的三要素和特点1. 协议主要由以下三个要素组成: 语义:“讲什么”,数据内容、含义以及控制信息。 语法:“如何讲”,数据的格式、编码和信号等级(电平的高低)。 定时规则:明确通信的顺序、速率匹配和排序。2. 协议

29、的特点:层次性、可靠性和有效性。3.3.3 通信协议端口 如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536(即:216)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(216-1)。在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择。可见,把数据包顺利的传送到目的主机是没有问题的。问题出在哪里呢?我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?显然

30、这个问题有待解决,端口机制便由此被引入进来。本地操作系统会给那些有需求的进程分配协议端口(protocol port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据包后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也需要开启端

31、口,这样,数据包中将会标识有源端口,以便接受方能顺利地回传数据包到这个端口。 3.3.4 TCP与UDP在网络通信中的区别 TCP即传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 UDP即用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传

32、输速度很快。3.3.5 通信协议及端口设计 基于UDP的广播通信规约 :介于224.0.0.0 和 239.255.255.255之间的为D类IP地址。系统中选择234.234.234.234服务器消息广播组,所有启动的客户端可向该广播组发送请求信息,获取服务器配置信息。同时选择51314为通信端口。 基于TCP连接的通信规约:所有与服务器之间的通讯,为保证数据安全传送,采用基于 TCP/IP的Socket连接,服务器选取51315为监听客户端请求的端口。 远程方法调用(RMI):用户通过调用运行在服务器端的对象中的方法,获取一些信息,服务器端选取61314为监听客户请求的端口。通信数据规约(

33、数据包格式约定) 【见 表3-4 通信数据规约】表3-4 通信数据规约注:C:client(客户端) S:server(服务器) G:服务器和所有用户未进入游戏前加入的广播组 F:每个游戏对应的广播组,进入游戏场景后,用户加入该组 TCP:基于Socket面向连接的通信 UDP:基于数据报通信第一个字节 意义数据流向方式-2 服务器拒绝登陆信息录入黑名单SCTCP -1服务器发送来的错误信息SCTCP0注册信息CSTCP10注册回应信息-成功SCTCP11注册回应信息-ID重复 SCTCP12注册回应信息-数据流错误 SCTCP1登录信息CSTCP20登录信息 -成功 SCTCP21登录信息

34、-用户ID错误 SCTCP22登录信息 -用户密码错误 SCTCP23登录信息 -数据异常 SCTCP24登录信息 -重复登录SCTCP25正常退出游戏SCTCP30用户请求更新用户信息CSTCP31用户请求更新角色信息CSTCP32用户请求更新房间信息CSTCP33用户更改密码请求信息CSTCP34用户更改密码原密码不正确 SCTCP35用户更改密码成功 SCTCP36没有找到对应id的用户SCTCP37服务器更改密码异常终了SCTCP38新密码和旧密码一致SCTCP40服务器响应请求用户信息SCTCP41服务器响应请求更新坦克信息SCTCP42服务器响应请求更新房间信息 SCTCP43服务

35、器房间信息改变信息SCTCP44服务器房间被删除信息SCTCP45服务器房间信息已更新SCTCP100请求服务器地址广播消息CGUDP101服务器地址消息 GCUDP101服务器地址消息SGUDP102请求获取系统公告CGUDP103投递系统公告GCUDP103广播系统公告SGUDP110通知服务器已加入房间 CSTCP111通知服务器已离开房间 CSTCP112通知服务器更新玩家坦克信息 CSTCP110通知客户端有用户加入房间 FCUDP111通知课户端有用户离开房间 FCUDP120通知游戏用户坦克的游戏操作信息CFUDP120客户端收到其他用户坦克操作信息FCUDP200客户端坦克发射

36、子弹消息 CFUDP300回合开始信息FCUDP310回合结束信息 FCUDP315发送回合战绩 CSTCP320本回合玩家战绩 (已排序)FCUDP330回合开始倒计时信息 FCUDP340请求回合状态信息 CSTCP350返回回合状态信息 S CTCP400同一房间内聊天信息 C FUDP400全服内聊天信息(服务器发送)S CTCP400聊天信息(客户端发送) CSTCP500用户充值成功信息S CTCP 第4章 详细设计与系统实现4.1 服务器模块设计 在服务器模块中,每一个模块都实现了特定的功能。客户端通过发送不同的请求码到服务器,随后服务器会根据这些请求码调用不同的模块来响应客户端

37、的请求。因此模块的实现以及各个模块之间的合理配合,对于系统的稳定运行显得尤为重要。4.1.1 登录1. 画面预览 【见 图 4-1 登录画面】 图 4-1 登录画面 2. 功能描述: 该画面用于验证用户是否具有进入服务器的权限,如果是第一次运行服务器 则不会出现该画面,同时进入后将会弹出”服务器配置画面“,用户需填写相关服务器配置信息。如果用户已经进入过系统,并已经配置过服务器,则用户必须填写正确的账号和密码,系统会读取配置文件,验证通过后方可进入系统,否则提示用户登录验证失败信息。3. 用户权限验证部分代码如下:public void checkinfo() info = new Prope

38、rtiesFileRW(user);if (info.getValue(adminid) = null) this.dispose();parent.dispose();new Thread(new Runnable() public void run() new Server();).start(); else showCheck();private void login() String id = usernamein.getText().trim();String pass = new String(passwordin.getPassword();String defid = info

39、.getValue(adminid);String defpass = info.getValue(adminpassword);if (defid.equals(id) & defpass.equals(pass) this.dispose();parent.dispose();new Thread(new Runnable() public void run() new Server();).start(); else usernamein.setText(登录信息验证失败!);passwordin.setText();4.1.2 服务器管理平台及网络通信1. 画面预览 【见 图 4-2

40、服务器操作中心】2. 功能描述: 用户通过验证后进入该画面,能执行的功能可通过点击画面上的相关按钮来 实现。 进入服务器后,服务器将自动建立以一个基于UDP的广播组数据报收发的线程,用来监听用户请求。通过该线程,用户可以获取到服务器IP地址,系统公告信息。 当服务开启后,系统将自动建立一个基于TCP/IP的网络通信线程,用户与服务器的交互均通过该线程建立Socket连接后进行数据交换。用户通过验证后该Socket连接将被保留在服务、器中,并在单独的线程里不断接收用户请求,将用户请求的数据通过该连接发送给用户。、当用户退出或者服务器停止服务时,该连接将会从服务器清除。系统服务启动后每个房间也会自

41、动创建一个基于UDP的广播组数据包收发线程,该线程仅为该房间服务,发送游戏回合信息以及定时向该房间内发送玩家的战绩排名信息。 进入服务器后,系统将在服务器端的指定端口建立一个对象注册表,并在该对象注册表内注册一个对象用来完成用户的属性强化、找回校验码和道具购买请求。通过用户传递过来的用户ID,查询数据库,并根据用户信息,返回操作结果提示给用户。该功能在用户请求时发挥作用。3. 服务器监听用户接入请求的核心代码如下:public void run() while (on) try socket = ss.accept();new ClientLink(socket, this); catch (

42、Exception e) / 错误日志记录Log.writeLog(ServerProxy:服务器监听客户端接入线程失败!);4. 远程调用服务端实现:objreg = LocateRegistry.createRegistry(61314); uifi = new UserInfoImp(); objreg.bind(userinfo, uifi);图 4-2 服务器操作中心4.1.3 服务器配置及邮件发送1. 画面预览 【见 图 4-3 服务器配置】 图 4-3 服务器配置2. 功能描述: 用户初次登录或者在服务器槽中中心画面点击”服务器配置“按钮可调出该画面。管理员ID和登录密码设置完成后,再次登录系统时将会出现管理员登录验证画面。在该画 面还需填写一个有效的邮箱地址,邮箱输入后系统将根据邮箱类型自动将相关的SMTP 服务器地址填写在对应的输入框内,用户也可手动输入SMTP服务器地址。邮箱密码为邮箱的登录密码。当点击”确定“后,用户输入的信息将写入服务器所在目录的一个名称为”user.properties“的文件内。当用户请求找回校验码时,系统将从数据库找到用户的校验码和注册邮箱,然后从”user.properties“的文件内读取邮箱配置将校验码发送到用户的邮箱。该功能仅在用户请求时方可执行。3. 邮件发送功能代码如下: se.setHostName(

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922