ImageVerifierCode 换一换
格式:DOC , 页数:41 ,大小:2.74MB ,
资源ID:5176230      下载积分:12 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5176230.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(网络对战游戏《奇迹之海》服务器数据库的设计与实现本科学位论文.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

网络对战游戏《奇迹之海》服务器数据库的设计与实现本科学位论文.doc

1、重庆大学本科学生毕业设计(论文) 中文摘要摘 要随着网络的普及,网络游戏已经成为大家耳濡目染的新生事物。现在,可以说网络游戏已经成为人们休闲、娱乐的有效方式。网络游戏必须依托于互联网,可以多人同时参与游戏,通过人与人之间的互动达到交流、娱乐和休闲的目的。在网络游戏中,数据库主要用来保存用户资料,包括用户注册信息、用户游戏资料以及其他设置资料。网络游戏的服务器端在处理这些资料时,必然要使用数据库进行大量数据的永久存储,所以在网络游戏的开发中数据库的设计也是很重要的环节。本项目就是完成网络游戏服务器数据库的设计和实现。本项目选择MySQL作为数据库管理系统,还使用了MySQL提供的C API,通过

2、该API的功能进行连接管理、实施查询、处理结果集等操作。在项目开发的过程中,本文主要完成的工作如下:1. 通过需求分析,完成了数据库的概念设计、逻辑设计以及系统架构设计。2. 通过系统架构图,并结合需求,分析出了系统各个部分的工作情况以及数据的交互情况。3. 将MySQL C API封装成易于使用的数据库接口。4. 为数据库服务器提供了操作数据库的函数。关键词:数据库系统,网络游戏,MySQL C API,封装I重庆大学本科学生毕业设计(论文) 目录ABSTRACTWith the popularization of internet, online game is no longer a n

3、ew thing to people. Now it can be said that online games have become an effective way of the peoples leisure and entertainment. Online games must rely on the internet, people can take part in the game at the same time, and through the interaction between people to reach the purposes of exchange, ent

4、ertainment and leisure.In online games, the database is mainly used to save users data, including users registration information, users game information, as well as other setting information. When online games server-side in dealing these data, the database must be used to store large amounts of dat

5、a permanent, so database designing is also a very important aspect in the development of online games.This project is about design and implementation of server database for online game. This project uses the database management system based on MySQL, also uses the MySQL C API, and this API functions

6、 can do connection management, the implementation of inquiries, processing of result sets and so on. In the project design process, the work completed as follows:1. Through the requirement analysis, we complete the concept and logic design of database, and system architecture design.2. Through the s

7、ystem architecture diagram, we analyze the work of the various parts of the system and the data interactive situations.3. Packaged the C API as easy-to-use database interface.4. Provided functions for the database server operating the database.Keywords: database system, online game, MySQL C API, Pac

8、kagII重庆大学本科学生毕业设计(论文) 目录目 录摘 要IABSTRACTII1 绪 论11.1 课题研究背景11.2 课题研究意义22 系统需求分析42.1 需求概述42.2 数据库系统需求42.3 用户用例分析53 系统设计83.1 MySQL概述83.2 数据库概念设计83.3 数据库逻辑设计144 系统难点技术分析与设计194.1 系统架构设计与分析194.2 将MySQL C API封装成易于使用的数据库接口274.2.1 MySQL C API 概述274.2.2 封装C API295 系统实现336 工作总结和结论36致 谢37参 考 文 献38III重庆大学本科学生毕业设计

9、(论文) 1 绪论1 绪 论1.1 课题研究背景随着网络的普及,网络游戏已经成为大家耳濡目染的新生事物。网络游戏从出现到现在发展的时间很短,但是起发展速度却非常之快。现在,可以说网络游戏已经成为人们休闲、娱乐的有效方式。网络游戏必须依托于互联网进行、可以多人同时参与的游戏,通过人与人之间的互动达到交流、娱乐和休闲的目的。一般的网络游戏都是采用客户/服务器模式的体系结构(见图1.1),包括客户机程序、服务器程序、数据库服务器。图1.1 网络游戏体系结构网络游戏都是采用如下的方式运行: 有一个或多个游戏服务器启动特定游戏服务。 游戏者到游戏网站下载客户端程序并且申请游戏账号ID。然后启动客户端程序

10、,通过网络协议连接游戏服务器。 客户端程序负责处理客户端显示和操作界面,具有简单的逻辑处理功能,同时负责接收发送与服务器端交互的数据包。 服务器程序负责处理服务器端逻辑、游戏逻辑、客户之间的网络信息传递,以及数据库之间的数据读取保存工作。同时服务器端还要承担客户端数据的接受转发工作。 网络游戏常常用到网络协议有适用于Internet的TCP/IP协议、适用于局域网的IPX协议。网络游戏程序的开发一般采用Microsoft Visual C+作为编译环境,分为客户端程序和服务器端程序。客户端程序主要负责显示用户界面,为用户提供赏心悦目的操作界面,通过客户端与服务器之间的网络传递数据,实现了多人协

11、同游戏的目的。在开发网络游戏时,首先要建立底层的网络通信类,利用网络通信类连接构建客户服务器之间的TCP/IP连接,然后在该连接的基础上利用自己设定的协议进行客户端登录、进入大厅、开始游戏、换房间等操作。在以上协议的基础上,同时在服务器端还需要和数据库服务器交互,用于读取或保存客户信息(如客户积分。密码。个人资料等数据)。在网络游戏中,数据库主要用来保存用户资料,包括用户注册信息、用户游戏资料以及其他设置资料。1本项目就是对网络游戏数据库系统的设计。网络游戏的服务器端在处理大量的客户资料时,必然要使用数据库进行大量数据的永久存储,所以在网络游戏的开发中数据库的设计也是很重要的环节。1.2 课题

12、研究意义网络游戏的服务器端在处理大量的客户资料时,必然要使用数据库进行大量数据的存储和查询,服务器在数据库中保存客户注册信息、客户积分信息、客户设置信息等信息。同时因为游戏服务器一般采用多服务器,所以多台游戏服务器同时连接一台数据库服务器,进行客户数据的查询和修改,并且保持客户数据的同步。在客户注册用户、登录服务器、保存游戏结果、退出游戏时游戏服务器都必须和数据库服务器进行交互,查询和保存客户资料;当同时有大量用户同时游戏时,所以必须保证数据库服务器的性能,以免造成数据库处理缓慢导致游戏服务器停止响应的后果。现在的网络游戏,数据越来越多,越来越复杂。合理地组织这些数据,并为服务器提供便于操作的

13、接口,从而实现快速的数据访问是一个非常重要的工作。数据库技术为开发人员提供了一个良好的平台。至今,数据库设计的很多工作仍需要人工来做,除了关系型数据库已有一套较完整的数据范式理论可用来部分地指导数据库设计之外,尚缺乏一套完善的数据库设计理论、方法和工具,以实现数据库设计的自动化或交互式的半自动化设计。所以数据库设计今后的研究发展方向是研究数据库设计理论,寻求能够更有效地表达语义关系的数据模型,为各阶段的设计提供自动或半自动的设计工具和集成化的开发环境,使数据库的设计更加工程化、更加规范化和更加方便易行,使得在数据库的设计中充分体现软件工程的先进思想和方法。1本项目使用的是基于MySQL创建的数

14、据库,还使用了MySQL提供的一个C语言的API,使用该API的功能进行连接管理、实施查询、处理结果集等内容。为服务器提供操作数据库的函数接口。通过该课题的研究,能使我了解MySQL相关知识,加深对数据库相关知识的认识,掌握了网游服务器数据库的开发流程与方法。锻炼并提升自己的能力,丰富自己的专业知识。为以后就业打下良好基础。38重庆大学本科学生毕业设计(论文) 2 系统需求分析2 系统需求分析2.1 需求概述在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围和定义时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程

15、师确定顾客的需要。 只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析主要是解决软件产品应该达到的各项功能和非功能要求,即用户要求做什么。软件需求分析工作是软件开发与用户紧密配合。充分交换意见,系统在广大的相关人群中谋取平衡与折衷,最终达到相互谅解的过程。需求分析是从用户最初的非形式化需求到满足用户要求的软件产品的映射过程。它实际上是一个对用户意图不断进行揭示和判断的过程,其目的在于细化、精华软件的作用范围,确定拟开发软件的功能和性能、约束、环境。需求分析工作是软件生存期中重要的一步,也是决定性的一步。软件需求分析工作是一个不断认识和逐步细化的过程。该过程将软件计划阶段所确定

16、的软件范围(工作域)逐步细化到可详细定义的程度,并分析各种不同的软件元素,然后为这些元素找到可行的解决方法。42.2 数据库系统需求本阶段主要任务就是:调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。数据库系统主要完成登录服务器,大厅服务器,游戏服务器,数据库服务器与数据库之间的交互。其主要分为两大块:登录服务器与数据库的交互,大厅服务器与数据库的交互。系统需求大致可叙述为: 用户通过游戏客户端软件登陆游戏服务器,服务器通过传递过来的用户、密码到数据库中验证,如果验证通过即

17、可登录游戏,否则提示用户、密码错误。 通过验证后,从数据库中读取出用户的个人资料如账号名,同时读取用户的游戏资料如积分、等级、金钱等参数。 用户选择游戏大厅进行游戏。在大厅可进行查收礼物、购买物品、配置自己物品等操作。操作完成后,程序调用数据库接口保存用户相应信息。 在用户一局游戏结束后,用户的游戏信息会改变。程序调用数据库接口保存用户游戏信息,如胜率变化、积分等资料。2.3 用户用例分析在网络游戏中的用户用例根据功能分为3个包,分别为显示包、操作包、设置包。显示包主要包括客户端显示游戏界面的和现实图形等功能,以及显示游戏中的玩家信息的图标、游戏中的游戏大厅和显示游戏信息等。操作包主要是客户端

18、的游戏操作,包括用户登录游戏、离开游戏、进入大厅、更换大厅等。设置包主要包括游戏者的设置信息以及其他功能。下面列出了与数据库系统相关的用例。 显示包:包括以下用户用例:显示用户信息,显示大厅信息。(如图2.1)图2.1 显示包用户用例显示包用户用例介绍如下:1) 显示用户信息:显示在线用户状态,包括用户积分等各种数据,以及用户当前状态等。2) 显示大厅信息:显示游戏大厅信息,包括人数等。同时可用于维护大厅信息。 操作包:包括以下用户用例:登录游戏、退出游戏、选择大厅、更换大厅、激活物品、丢弃物品、购买物品、赠送礼物、接收礼物、丢弃礼物。(如图2.2)图2.2 操作包用户用例操作包用户用例介绍如

19、下:1) 登录:用户启动登录器,输入账号、密码进行登录。如果通过验证即成功登陆,否则提示重新输入并验证。2) 选择大厅:登录后,用户可以选择大厅进行游戏。进入大厅时验证账号、密码以及生成的验证码三项。如果通过验证即成功进入大厅,否则提示重新选择并验证。3) 更换大厅:用户在大厅中可选择更换大厅。更换大厅时,重新产生验证码。并再次检验账号、密码、验证码三项。如果通过验证即成功更换大厅,否则提示重新操作并验证。4) 激活物品:用户在查看物品界面可以激活自己未使用的物品。激活成功则提示激活成功,否则提示重新操作。5) 丢弃物品:用户在查看物品界面可以丢弃自己的物品。成功即提示成功消息,否则提示重新操

20、作。6) 购买物品:用户在购买物品界面可以为自己购买物品。成功即提示成功消息,否则提示重新操作。7) 赠送礼物:用户在礼物界面可将自己的物品赠送给他人。成功即提示成功消息,否则提示重新操作。8) 接收礼物:用户在礼物界面可选择接收别人赠送的礼物。成功即提示成功消息,否则提示重新操作。9) 丢弃礼物:用户在礼物界面可选择丢弃别人赠送的礼物。成功即提示成功消息,否则提示重新操作。10) 退出:用户退出游戏。之前产生的验证码会被删除。重庆大学本科学生毕业设计(论文) 3 系统设计3 系统设计3.1 MySQL概述MySQL是一个高性能、多线程、多用户、建立在客户-服务器结构上的RDBMS,专门为了速

21、度和稳定性而设计。在过去的几年中,它已经成为线上和线下适合于数据库驱动的应用程序最受欢迎的RDBMS之一。现今,有超过400万的网站建立、使用并且配置了基于MySQL的应用程序,而且网站的数量每天都在增加。它得到了像Sony,Xerox,HP和NASA这样的公司或组织的积极使用。简而言之,它无处不在,它的应用将会变得更广泛。我们不难发现这样急速增长的原因。相对于像Oracle和Microsoft SQL Server一样的更商业化、非开放源代码的系统来说,快速、健壮和友好的数据库引擎、高级的数据管理和恢复工具、不断改进的特性合集、遵守现有的SQL标准、友好的商业许可原则,都是促成MySQL成为

22、可实施的选择因素。MySQL的较低总体拥有成本和更稳定、更安全的系统特性,使越来越多的企业吧它们的系统移植到MySQL,并且收获着MySQL开放源代码带来的效益。MySQL始终围绕三个基本原则而设计,它们是:性能、可靠性和容易使用。严格按照这些准则产生了一个价格便宜而富有特色、适应标准而容易扩展、速度快而效率高的RDBMS,使MySQL成为开发者和管理者建立、维护和配置复杂应用程序的完美工具。今天,MySQL的主要应用程序出现在网络舞台上,这并不令人吃惊。随着网站以及基于Web对分布式应用程序变得越来越复杂,有效管理数据来改善处理效率、降低响应时间和提高用户的全面技能就变得越来越重要了。因此,

23、我们迫切需要一个速度快、性能稳定和安全的数据库(可以非常省心地配置和使用它,并且为将来的发展奠定坚实的基础)。很多原因让MySQL正合需要。经过证实的记录让它的可靠性和寿命得到保证,开放源代码的根本能够确保迅速调整缺陷和性能持续增强大周期(更不必提及较低的总体拥有成本);对不同编程语言和技术的可移植性和支持,使它适合多种应用程序。2基于MySQL的以上优点,我们选择MySQL做为该网络游戏的数据库管理系统。3.2 数据库概念设计概念设计:对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门

24、的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。6根据需求,我们可设计出如下的表: Account:存储用户账号信息(如图3.1)。用户注册账号时产生这些信息,每局游戏结束后将更新相应信息。

25、用户可在游戏大厅中相应界面看到这些信息。图3.1 表Account属性1) AccountId:用户账号id;2) UserName:用户名字;3) Password:用户密码;4) Experience:用户经验;5) Money:用户金钱;6) Level:用户等级;7) CurShipAccessId:用户当前战舰id。 Thing:存储用户道具信息(如图3.2)。用户买入、接收道具以及对道具进行各种操作时,这些数据将更新。用户可在游戏大厅中相应界面看到这些信息。图3.2 表Thing属性1) ThingId:用户物品id;2) AccountId:用户物品所属用户id;3) Thing

26、Type:用户物品类型;4) bBind:用户物品是否绑定;5) bInstalled:用户物品是否激活;6) ActiveTime:用户物品有效时间;7) AccessId:用户物品在本地角本数据库表中的id;8) ShipAccessId:用户战舰在本地脚本数据库表中的id。 HSGCVerifyCode:临时存储用户登陆验证信息(如图3.3)。用户登录时产生这些信息,用于用户进入、更换大厅时使用,用户退出游戏后,产生的这些信息将被删除。图3.3 表HSGCVerifyCode属性1) HSGCVerifyCodeId:登录验证Id;2) AccountId:登录用户的Id;3) Veri

27、fyCode:验证码。 Gift:存储用户礼物信息(如图3.4)。用户赠送礼物时,会产生相应信息,被赠送用户会在相应界面看到这些信息。图3.4 表Gift属性1) GiftId:礼物的id;2) AccountId:接收礼物用户的id;3) ThingType:礼物类型;4) Benefactor:送礼物的用户;5) DescText:礼物附带的描述以上表都是在游戏过程中与用户交互时生成的此外,还有本地脚本数据库中的表(后缀为Access代表为本地数据库里的表),但这些表不在设计范围中,故不做详述。它们包括: ShipAccess:存储游戏中战舰的信息(如图3.5)。图3.5 表ShipAcc

28、ess属性 RoleAccess:存储游戏中角色的信息(如图3.6)。图3.6 表RoleAccess属性 GunAccess:存储游戏中战舰上武器的信息(如图3.7)。图3.7 表GunAccess属性 ItemAccess:存储游戏中物品的信息(如图3.8)。图3.8 表ItemAccess属性 EmplaceAccess:存储战舰位置信息(如图3.9)。图3.9 表EmplaceAccess属性后缀为Access代表为本地数据库里的表以上表的实体关系(如图3.10):图3.10 实体关系图3.3 数据库逻辑设计逻辑设计:主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应

29、于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。6在数据库概念设计完成之后,我们可进行数据库逻辑设计。 创建数据库ocean。在MySQL Command Line Client中执行如下命令:CREATE DATABASE ocean;执行完毕后,数据库ocean创建成功。(如图3.11)图3.11 数据库ocean 然后连接数据库ocean。在MySQL Command Line Client中执行如下命令:USE ocean;执行完毕后,提示数据库连接成功。 在数据库ocean中创建表ac

30、count。在MySQL Command Line Client中执行如下命令:CREATE TABLE account ( AccountId int (10) unsigned NOT NULL auto_increment, UserName varchar (45) character set latin1 NOT NULL, Password varchar (45) character set latin1 NOT NULL, Experience int (10) unsigned NOT NULL, Money int (10) unsigned NOT NULL, Level

31、 int (10) unsigned NOT NULL, CurShipAccessId int (10) unsigned NOT NULL, PRIMARY KEY (AccountId) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;Data base on mysql执行完毕后,表account创建成功。(如图3.12)图3.12 表account 在数据库ocean中创建表gift。在MySQL Command Line Client中执行如下命令:CREATE TABLE gift ( GiftId int (10) un

32、signed NOT NULL auto_increment, AccountId int (10) unsigned NOT NULL, ThingType int (10) unsigned NOT NULL, AccessId int (10) unsigned NOT NULL, Benefator varchar (45) NOT NULL, DescText varchar (45) NOT NULL, PRIMARY KEY (GiftId) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;执行完毕后,表gift创建成功。

33、(如图3.13)图3.13 表gift 在数据库ocean创建表hsgcverifycode。在MySQL Command Line Client中执行如下命令:CREATE TABLE hsgcverifycode ( HSGCVerifyCodeId int (10) unsigned NOT NULL auto_increment, AccountId int (10) unsigned NOT NULL, VerifyCode int (10) unsigned NOT NULL, PRIMARY KEY (HSGCVerifyCodeId) ENGINE=InnoDB AUTO_IN

34、CREMENT=8 DEFAULT CHARSET=latin1;执行完毕后,表hsgcverifycode创建成功。(如图3.14)图3.14 表hsgcverifycode 创建表thing。在MySQL Command Line Client中执行如下命令:CREATE TABLE thing ( ThingId int (10) unsigned NOT NULL auto_increment, AccountId int (10) unsigned NOT NULL, ThingType int (10) unsigned NOT NULL, bBind int (10) unsig

35、ned NOT NULL, bInstalled int (10) unsigned NOT NULL, ActiveTime int (10) unsigned NOT NULL, AccessId int (10) unsigned NOT NULL, ShipAccessId int (10) unsigned NOT NULL, EmplaceIndex int (10) unsigned NOT NULL, PRIMARY KEY (ThingId) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=latin1;执行完毕后,表thing

36、创建成功。(如图3.15)图3.15 表thing重庆大学本科学生毕业设计(论文) 4 系统难点技术分析与设计4 系统难点技术分析与设计4.1 系统架构设计与分析根据分析,我们设计出系统架构图。(如图4.1)图4.1 系统架构图从图我们可以看出系统各个部分的工作情况以及数据的交互情况。可从两个部分来分析: 登录服务器与数据库服务器的交互。其中包括:用户由登录器客户端登陆登录服务器时,登录服务器请求数据库服务器执行登陆验证操作,数据库服务器再对数据库进行查询操作,并返回查询结果。 大厅服务器与数据库服务器的交互。其中包括:1) 用户由游戏客户端登陆大厅服务器时,大厅服务器请求数据库服务器执行登陆

37、验证操作,数据库服务器再对数据库进行查询操作,并返回查询结果。2) 用户更换大厅时,大厅服务器请求数据库服务器执行更换大厅操作,数据库服务器再对数据库进行相应操作,并返回操作后的结果。3) 用户对物品进行查询、配置、激活、丢弃、购买、赠送、接收时,大厅服务器请求数据库服务器执行相应操作,数据库服务器在对数据局进行相应的操作,并返回操作后的结果。4) 一局游戏结束后,游戏服务器将游戏过程中各种信息的变化传给大厅服务器,大厅服务器请求数据库服务器执行数据更新操作,数据库服务器再对数据库进行更新操作,并返回更新后的结果。5) 用户退出游戏时,大厅服务器请求数据库执行退出操作,数据库服务器再对数据库进

38、行相应的删除数据操作。其中值得注意到一点是:游戏服务器没有直接与数据库服务器进行交互,而是通过大厅服务器与数据库服务器进行数据的传递。之所以是这样,主要是因为这类网络对战游戏不需要在游戏过程中实时更新数据,可以通过大厅服务器,在一局游戏结束后,再进行游戏数据的更新。所以,本系统采用的是这种数据交换方式。下面,我们结合系统需求,对架构图进行详细的分析:表4.1 术语表缩写全写定义LCLogin Client登陆器客户端LSLogin Server登录服务器GCGame Client游戏客户端HSHall Server大厅服务器DSDB Server数据库处理服务器GSGame Server游戏服

39、务器DBData Base数据库1) LC登陆LS时,LS请求DS进行验证,验证内容为用户名和密码2项。DS在DB中查询是否有匹配信息。如果验证成功,则数据库中产生一个HSGC验证码,并然后反馈验证结果。否则提示用户登陆失败。(如图4.2)图4.2 LC登录LS流程图2) GC登陆HS时,HS请求DS进行验证,验证内容为用户名和密码、HSGC验证码 3项。DS在DB中查询是否有匹配信息。 然后反馈验证结果,如果是成功的,那么附带用户信息,以及礼物信息。否则提示用户登录失败。(如图4.3)图4.3 GC登录HS流程图3) GC已经在某个HS里,用户进行更换HS的操作时,HS请求DS进行更换大厅操

40、作,DS操作DB产生一个新HSGC验证码,然后返回新的HSGC验证码给HS。并进行更换大厅操作。(如图4.4)图4.4用户更换大厅流程图4) GC已经在某个HS里,用户进行配置时需要激活道具、装备和角色,HS请求DS进行激活操作。DS操作DB,更改DB中相应数据。操作完成后,传回更新后的数据给HS,并提示操作成功。(如图4.5)图4.5 用户激活操作流程图5) GC已经在某个HS里,用户点击丢弃按钮丢弃一个道具、装备或者角色,HS请求DS进行丢弃操作。DS对DB进行操作,更改DB中相应的数据。操作完成后,传回更新后的数据给HS,并提示操作成功。(如图4.6)图4.6 用户丢弃物品操作流程图6)

41、 GC已经在某个HS里,用户点击确定按钮确认当前的道具、装备或者角色在船上的配置,HS请求DS进行确认操作。DS对DB进行操作,更改DB中相应的数据。操作完成后,传回更新后的数据给HS,并提示操作成功。(如图4.7)图4.7 用户确认物品操作流程图7) GC已经在某个HS里,用户点击购买结算,HS请求DS进行结算操作。DS对DB进行操作,更改DB中相应的数据。操作完成后,传回更新后的数据给HS,并提示操作成功。(如图4.8)图4.8 用户购买结算操作流程图8) GC已经在某个HS里,用户要赠送礼物,HS请求DS进行赠送操作。DS对DB进行操作,更改DB中相应的数据。操作完成后,传回更新后的数据

42、给HS,并提示操作成功。(如图4.9)图4.9 用户赠送礼物操作流程图9) GC已经在某个HS里,用户在收到礼物界面中,确认接收礼物时,HS请求DS进行接收操作。DS对DB进行操作,更改DB中相应的数据。操作完成后,传回更新后的数据给HS,并提示操作成功。(如图4.10)图4.10 用户接收礼物操作流程图10) GC已经在某个HS里,用户在收到礼物界面中,确定丢弃礼物是,HS请求DS进行丢弃礼物操作。DS对DB进行操作,更改DB中相应的数据。操作完成后,传回更新后的数据给HS,并提示操作成功。(如图4.11)图4.11 用户丢弃礼物操作流程图11) GC已经在某个HS里,用户查询礼物信息时,H

43、S请求DS进行查询礼物信息操作。DS对DB进行查询,查询完成后,将查询到的数据返回给HS。(如图4.12)图4.12 用户查询礼物操作流程图12) 用户一局游戏结束后,用户的各种游戏信息会得到更新,GS将这些数据传给HS,HS请求DS进行数据更新操作并将数据传给DS。DS对DB进行相应的数据更新操作,操作完成后,将更新后的数据传回HS。(如图4.13)图4.13 游戏结束后数据更新流程图13) GC已经在某个HS里,用户退出游戏时,HS请求DS进行退出操作,DS删除DB中相应的HSGC验证码信息。(如图4.14)图4.14 用户退出游戏操作流程图4.2 将MySQL C API封装成易于使用的

44、数据库接口4.2.1 MySQL C API 概述与其他很多同类型的商业软件不同,MySQL通过一系列的API向开发者开放自己的内核,因此使他们能够自由地选择自己的语言创建数据库驱动的应用程序。MySQL API可以为开发者提供一些具体能力,下面分别简要予以介绍。 链接管理:在一个应用程序能够与数据库交互并且对其中保存的数据进行查询之前,必须首先建立与数据库服务器的连接。MySQL API包含了专门针对应用程序连接到MySQL数据库服务器的一系列功能,可以提供各种申请证书,并且为以后的通信开放一个渠道。一旦所有通信完成,API还提供了一些功能来终止连接和释放被使用的内存,清除事件。 实施查询和

45、处理结果:一旦连接建立,应用程序可以向服务器发送查询,并检索结果。MySQL API提供了很多功能来简化这个过程,包括执行单个查询或者作为一个事务块的查询功能、检索和处理记录集合、收集来自集合的具体记录或来自记录的具体字段等。 报告错误:MySQL API还提供了基本错误报告能力,当连接或查询出现问题时,能向调用者传递错误代码和信息。除此之外,API还允许调用者访问详细的排错和管理信息,包括当前服务器状态和所有活动过程列表等。 辅助功能:除了前面介绍的各种功能外,MySQL API还可以提供很多所谓的管理功能,包括返回服务器的当前状态(打开连接的数量、得到处理的查询数量、服务器版本等);列出可以使用的数据库、表、字段和过程等;管理字符集;提供详细的诊断和排错信息;通过关闭不活动的连接和终止不活动的过程来清理没有使用的内存;关闭、重启或重载服务器等。MySQL为很多不同的编程语言开放了API,使得可以使用自己选择的语言编写数据库驱动的应用程序。目前,MySQL提供的接口API编程语言有

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服