网络对战平台的设计与实现.doc
《网络对战平台的设计与实现.doc》由会员分享,可在线阅读,更多相关《网络对战平台的设计与实现.doc(29页珍藏版)》请在三一办公上搜索。
1、本 科 生 毕 业 论 文网络对战平台的设计与实现院 系: 信息科学与技术学院计算机科学系 专 业: 计算机科学与技术专业 学生姓名: 学 号: 指导教师: 摘 要网络对战平台是将各种具有某种共性的程序中的网络通信部分提取出来,编写一个独立的平台,使得各种符合平台接口的程序可以具备网络通信的能力。该平台只针对某些网络对战游戏,故称为网络对战平台。平台采用Client/Server结构,包括服务端和客户端。平台提供一种使程序进行网络通信的解决方法。本文通过现有的一些已经成熟的技术,包括CS结构,SOCKET网络编程,数据库编程,多线程编程等,并结合自己的一些想法,实现了一种网络对战平台,使得符合
2、接口规定的程序可以相互通信的能力。网络对战平台定义了一种软件重用的方法,提供了一种可扩展软件设计的方法,从而可以提高编程效率。编程者的注意力可以更多的集中在本地化编程上,而网络编程部分可以只进行少量接口编程即可。关键词:网络对战平台;接口;socket编程AbstractThe goal of Network Game Platform is to extract a variety of common procedures and build a single platform,whitch makes the programmes that implements the interface
3、 can comunicates.The platform is only for network game comunication,so it is call Network Game Platform.The Platform is built upon Client / Server structure, including server and client.The platform provides a solution on programme communication. In this paper, we use some mature technologies, such
4、as CS structure, SOCKET network programming, database programming, multi-threaded programming, combined with some of my own ideas, and makes interface with the procedure laid down in the can communicate with each other Capacity. Network Game Platform define a software reuse approach provides a scala
5、ble software design methods, which can improve programming efficiency. Programming the attention can focus on the more localized programming, network programming and some can only be a small amount of programming interface.Keywords: B;interface;socket programming目 录摘 要IABSTRACTII第一章前言11.1 网络对战平台概述11
6、.2 相关技术概述11.2.1 socket编程概述11.2.2 数据库编程概述21.2.3 Client/Server结构概述2第二章对战平台定义42.1 网络对战平台功能的定义42.2 网络对战平台接口的定义42.3 网络对战平台命令的定义52.3.1 平台命令的定义52.3.2 用户命令的定义6第三章对战平台服务器端定义73.1 平台服务器端功能的定义73.2 转发关系的定义83.3 数据库定义8第四章对战平台客户端定义104.1 平台客户端功能定义104.2 平台客户端接口定义10第五章对战平台具体设计115.1概述115.2 平台服务器端具体设计115.2.1 网络通信设计115.2
7、.2 多线程设计125.2.3 数据库设计135.3 平台客户端具体设计145.3.1 网络通信设计145.3.2 客户端启动程序设计15第六章结论17致谢17参考文献19附录20第一章 前言1.1 网络对战平台概述随着互联网的兴起,人们娱乐的手段开始多元化。网络使得人们放弃过去自娱自乐的游戏方式,而开始在网络上寻找志同道合,水平相当的网友进行共同娱乐。人们的这种需求加速了网络对战平台的兴起。如今中国市场有代表性的两种对战平台非浩方对战平台和QQ游戏莫属。浩方对战平台提供了一种可在局域网通信的游戏能在非局域网的网络上进行通信的解决方案。这在中国是开创性的,浩方得到了热爱游戏的玩家的大力支持,成
8、长迅速。创造了注册用户过亿,最高同时在线人数过百万的骄人记录。而另一种对战平台QQ游戏是腾讯旗下多人在线娱乐休闲平台。与浩方使用第三方开发的游戏不同,QQ游戏平台与平台上包含的游戏均为腾讯自主开发。QQ游戏同样获得了人们的认可,得到了各个年龄层人们的喜爱。它们的成功说明了人们对在线娱乐的渴望。但它们都是面向用户的,用户只需使用平台,接受他们提供的服务即可。而本文所记述的对战平台面向的人群更广泛些。它也面向用户,程序开发者可以将平台及与平台整合的自己开发的游戏程序一起打包给用户,以供其娱乐。同时更重要的是,平台提供了一种二次开发的能力并具备一定的可扩展性。平台提取了各种具备网络通信能力的游戏的网
9、络通信部分,减轻了游戏程序开发者负担并转换了其关注的焦点。同时,新的游戏可以很方便地整合进旧的平台中。1.2 相关技术概述1.2.1 socket编程概述socket通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过套接字向网络发出请求或者应答网络请求。socket接口是TCP/IP网络的API,socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也具有一个类似于打开文件的函数调用socket (),该函数返回一个整型的socket描述符,
10、随后的连接建立、数据传输等操作都是通过该socket实现的。常用的socket类型有两种:流式socket(SOCK_STREAM)和数据报式socket(SOCK_DGRAM)。流式是一种面向连接的socket,针对于面向连接的TCP服务应用;数据报式socket是一种无连接的socket,对应于无连接的UDP服务应用。socket描述符是一个指向内部数据结构的指针,它指向描述符表入口。调用socket函数时,socket执行体将建立一个socket,实际上建立一个socket意味着为一个socket数据结构分配存储空间。 socket执行体为你管理描述符表。两个网络程序之间的一个网络连接包
11、括五种信息:通信协议、本地协议地址、本地主机端口、远端主机地址和远端协议端口。socket数据结构中包含这五种信息。1.2.2 数据库编程概述数据库(database)是存储在计算机里的结构化数据的集合,通常由数据库管理系统(DBMS = DataBase Management System)软件(如Oracle、DB2、SQL Server等)对数据库进行管理,应用程序通过(标准)编程接口(如ODBC、JDBC、ADO等)来访问数据库。各个角色在数据库编程中的相互关系如图1。用户用户数据库应用程序数据库管理系统数据库管理系统标准编程接口数据库数据库 图1:数据库编程中各角色关系目前绝大多数数
12、据库为关系数据库(relational database),对应的管理软件为关系型数据库管理系统(RDBMS = Relational DBMS)。SQL(Structured Query Language结构化查询语言)为关系数据库的通用查询语言。SQL包括查询(query)、操作(Manipulation)、定义(definition)和控制(control)四种功能。用户通过SQL来操作数据库。1.2.3 Client/Server结构概述Client/Server结构(C/S结构)是大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配
13、到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Serv
14、er。客户端需要安装专用的客户端软件。C/S结构的优点是能充分发挥客户端的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。第二章对战平台定义2.1 网络对战平台功能的定义网络对战平台实现了使不具有网络通信能力的游戏程序在网络中可以进行通信的功能。本平台主要实现了两个功能:一,集成在此平台中的游戏程序彼此通信的数据在网络中的正确传输;二,平台中的用户特别是处于同一个游戏中的用户的管理。处于网络环境中的游戏程序的通信是实现网络对战的基础,因此也是本平台关注的一个焦点。此功能使得游戏程序的网络通信部分的实现与其它功能的实现相互脱离开。游戏程序的实现者只需把关注点放
15、在如何实现程序的特性,如何美化程序界面等功能上。而至于游戏程序如何在网络上相互通信,只需花费一点时间和精力,进行少量的接口编程,使得游戏程序符合平台的相关规定,即可实现。可以说这样可大大减少游戏程序开发者的时间,使得程序开发者可以将时间和精力放在游戏程序更应该被关注的部分。平台中的用户特别是处于同一个游戏中的用户的管理是平台关注的另一个焦点。平台把处于网络中的不同游戏程序看作离散点。他们之间的相互联系通过本台实现,而这些联系的管理当然也由平台负责。为了保证平台中用户之间可以方便正确地通话及娱乐,这种管理必须确保安全和高效。本文采用Client/Server结构,来实现符合要求的管理。2.2 网
16、络对战平台接口的定义由于平台不仅可以运行一种游戏程序,也不仅可以运行一个人编写的游戏程序。如何让这些各种各样的游戏程序都可以方便地使用平台提供的功能,最方便的解决方法就是定义一套接口规范。只要游戏程序符合这一接口规范,就可以方便地整合进平台,拥有网络通信的能力。接口定义是重要的,本节将阐述一个最小且功能完备的接口定义,具体如下。1,游戏程序的动作可以语句化。所谓语句化,就是说游戏程序的动作可以通过定义一些简单的表示出来。例如在(X,Y)坐标放置一个棋子可语句化为PUX Y,平台把语句化后的游戏程序的动作称为命令。命令分为平台命令和用户命令。关于命令的进一步定义将在下节阐述。2,游戏程序必须具备
17、和平台客户端在本地进行通信的能力。这一功能可以使得平台客户端得到游戏程序打算发送的数据,并将其通过网络传送给平台服务器端。本文将通过共享文件的方式来实现游序程序和平台客户端的本地通信,游戏程序必须支持这一方式。3,游戏程序必须要实现必要的平台命令。平台命令是用来与平台服务进行交互的。平台服务器端主要利用这些命令来管理游戏,例如游戏地创建与退出。平台命令的一部分可由平台客户端实现。而其它平台命令,游戏程序可根据平台的要求及自身功能的需求而选择实现,且实现必须保证正确。平台命令不能用户自己创造,将由平台自己定义。4,为了保证游戏数据传输的及时与正确,用户命令不宜过于复杂,一次传输的用户命令不宜过多
18、。除了以上的接口规定,游戏程序的其余功能的实现将不做任何要求。游戏程序使用何种语言,采用何种技术,运用何种方法,将完全由程序开发者自由把握。2.3 网络对战平台命令的定义2.3.1 平台命令的定义平台命令是游戏程序与平台服务器端进行交互的命令,为了使平台服务器端能“看懂”平台命令,平台命令则完全由平台本身定义。平台命令由动作标识和参数组成。为了区分于用户命令,动作标识将全部采用下划线(_)开头。平台命令分为发起命令和应答命令。发起命令为游戏程序向服务器端传送的命令,而应答命令是服务器端响应游戏程序的命令。表1为系统定义的平台命令。表1:平台命令动作平台命令类别例子登录平台_LOGIN发起命令_
19、LOGIN创建游戏_CREATE发起命令_CREATE退出游戏_EXIT gid发起命令_EXIT 1(1为游戏ID)加入游戏_JOIN gid发起命令_JOIN 1(1为游戏ID)开始游戏_START gid发起命令_START 1(1为游戏ID)指令执行成功_SUCCESS回应命令_SUCCESS指令执行失败_FAIL回应命令 _FAIL分配主机标识_ID id回应命令_ID 1(1为主机标识)其中主机标识是服务器端为了区分平台中的主机而分配的不相同主机号。平台在用户登录成功后,将用_ID id命令进行回复,为主机分配主机号。下面提到的主机标识将沿用此解释。2.3.2 用户命令的定义用户命
20、令由主机标识,动作标识及参数组成。其中主机标识和动作标识必不可少。用户命令完全用用户自定义,但主机标识为确保在同一游戏中的唯一,需使用服务器端的分配的主机标识。游戏程序必须具备将程序动作转换为命令以及将用户命令解析为程序动作的能力。同时,用户程序还需确定这一动作发生的窗口。表2为用户命令的示例。表2:用户命令动作命令例子主机hid在(x,y)处放置一子hid put x y1 put 2 3主机hid移除(x,y)处一子hid remove x y1 remove 2 3主机hid移动(x0,y0)到(x1,y1)hid move x0 y0 x1 y11 move 2 3 4 5主机连续n次
21、执行op动作Hid opn param1 put2 2 3 4 5第三章对战平台服务器端定义3.1 平台服务器端功能的定义平台服务器端作为整个平台的大脑中枢,在整个对战平台中起着至关重要的作用。它主要有两个功能:一,接受平台用户发送的用户命令,并将其转发给适当的其他用户;二,接受平台用户发送的平台命令,分析并将结果通过平台命令中的应答命令反馈给发送平台命令的用户。转发对战平台用户发送的用户命令,并将其转发给适当的其他用户,是对战平台服务器端的二个主要功能之一。从图2可以看出,平台服务器端位于对战平台构建的网络中的最核心的地位,任何传送给网络其他用户的数据必须经过它中转。将数据正确的转发是本功能
22、关注的一个重要焦点,转发关系的定义将在3.2节中阐述。用户用户客户端客户端服务器端客户端客户端用户用户图2:服务器端在平台中的位置接受并反馈用户发送的平台命令是服务器端另一个重要的功能。平台服务器端通过这一功能管理游戏与用户。用户通过这一功能获得了与平台中其他用户相互通信或断开与其他用户通信的许可。可以说是与其他用户通信之前和通信之后,用户与对战平台之间所须答成的约定。这一功能的一次成功实现将导致平台服务器端在其数据库文件中增加,删除或更新相应的记录项。关于数据库的设计,将在3.3节中阐述。平台服务器端所处的位置决定了它的重要性,因此一个安全可靠高效的平台服务器端将是平台追求的一个重点。3.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 平台 设计 实现
链接地址:https://www.31ppt.com/p-2387643.html