1、“.....般是指定个端口与服务端进行通讯。因为为了增加程序可利用性,该项目在客户端和服务端都使用来创建套接字。,参数主要的作用是它告诉内核允许单个进程绑定同个端口到多个套接字上,这样我们的客户端就可以多个同时连接到服务端同个端口上来。函数的封装函数是个服务端函数,它的主要作用是指定相应的套接字为被动连接。北京大学硕士学位论文在这里需要特别注意第二个参数,它的作用涉及到网络的细节部分,因为上面提到,每个游戏客户端只需要维持个套接字与服务端进行通讯,而且进行连接的过程有三步握手的过程,当服务端处理大量来自客户端的连接请求时,服务器内核会维持个还没有进行完三次握手的套接字,参数就是设置服务端维持未完成连接的套接字的个数。因为操作系统内核需要跟踪这些套接字的状态并处理,所以这个值不可能随便指定,必须有个上限,般类操作系统规定的最大值为。函数的封装对于服务端来说,编程中最重要的步就是等待并接受客户端的连接,就是用来完成这个操作的。这个函数是用来从内核中取出已经建立的客户端连接......”。
2、“.....建立与客户端的连接,接下来就可以实现点对点通讯了。函数还有个重要的作用就是转化套接字的作用,正如第个参数那样,它是个监听套接字。当点对点的连接建立起来以后,套接字就转变成了连接套接字,这些就可以利用连接套接字进行数据传输了。主要实现代码如下函数的封装函数是中客户端和服务端交互的重要函数,通过它,连接的双方可以实现向另端发送数据。在使用进行数据传输的过程中,有个细节特别需要注意。当使用函数向套接字的另外端发送数据时,会有个发送缓冲区,发送缓冲区是缓冲发送数据的地方,调用以后,会先比较缓冲区和要发送数据的大小,如果要发送的数据长度大于缓冲区的大小,就会返回,只有小于或等于缓冲区大小的数据才会被完整的发送出去。需要注意的地方是,当调用以后,有可能会出现上次调用的缓冲区数据还没有发送出去,这时会等待段时间,直到缓冲区剩余空间达到本次要发第四章系统部分功能的实现送数据长度大小,或者全部发送出去,会把要发送的数据拷贝到缓冲区,然后就返回了。也就是说,只负责把数据拷贝到缓冲区......”。
3、“.....极端情况是在拷贝完数据到缓冲区之后,返回了成功,此时网络断开,仍旧会出现。下面为其主要实现代码,函数的封装在中,是个重要的函数,也是个状态较多,较难理解的个函数。透彻的理解是完成数据通讯,正确处理交互数据关的关键,它的主要功能是监视套接字变化情况,是否可读写或者是否为异常。下面为该函数的主要封装实现代码在函数中,有个参数需要设置,但是对本项目有重要影响的参数有两个参数和参数。是个文件描述符集合,函数执行时,会检查这个集合中是否有文件状态发生了变化,本项目中是检查套接北京大学硕士学位论文字是否可读,如果可读就返回大于的值,若发生返回负值。的第个参数很特别,这里必须设置成大于套接字描述符的数字,般设置成套接字描述符加,否则,就监听不到该套接字读写变化。因为在本项目中,每个客户端只维持个套接字,所以在函数执行的时候,集合里面只有个该客户端所持有的套接字,当返回大于的数值时,查询该套接字是否在文件描述符集合里面,如果在文件描述符集合里面,则返回,其它情况返回......”。
4、“.....第五个参数是设置的查询时间,如果超过该参数所设置的时间,即超时以后,函数返回,表示操作超时。这里把时间设置成和传参数进去是两个不同的概念,当参数为时,为阻塞状态,直到等到有数据套接字描述符发生变化才继续往下执行。当传时间为进去时,就变成了经典的非阻塞状态的,不管文件描述符有没有发生变化,都继续往下执行,若有变化,则返回正值,无变化则返回,因为在本项目中有个单例线程专门用来处理从对方传输的数据,只有有数据从另方传过来时该线程才会与线程发生交互,没有数据传过来时只需要在这里等待就行,故在此传参数进去,把它设置成阻塞的。通讯协议的封装游戏通讯协议是网络应用最基本的部分,它涉及到客户端与服务端如何交互,它的设计高于传统的协议,是定义服务端和客户端交互的语法。在本系统中,交互的内容主要分为三大类系统交互类数据此类通讯主要是用于客户端和服务端进行的各种套接字连接的建立,套接字连接的断开游戏开始,游戏终止等的基础命令......”。
5、“.....游戏对战双方的终端要不停的刷新对方的状态,比如该游戏中,对战的双方要更新显示对方的速度,位置,该类型的通讯数据不需要服务端处理,只需要游戏对战双方做相应的更新。游戏道具使用类数据在本游戏中,设置了两种道具和个跳跃动作,功能性道具有加速器和攻击导弹。加速器主要用于加快游戏主角的奔跑速度,从而可以更快完成游戏,另外个,攻击导弹主要是用来攻击奔跑着的对方,让对方游戏中的主角降低速度,从而达到增加交互性和可玩性的目的。跳跃则是游戏主角在游戏过程中点击屏幕,达到升高高度的作用。通过这三类交互数据,可以很好的实现客户端和服务端的交互,并且具有定的能用性,即不管是本项目的跑酷类对战游戏,还是消除类对战游戏,或者是角色扮演类对战回调函数的主要实现如下解析命令等待开始游戏小结本章根据系统的设计,分四个层次对主要的功能的模块进行了编码实现,对部分通用的功能进行了封装实现和对主要逻辑代码进行了展示。第节系统类图以按客户端和服务端划分......”。
6、“.....第二节通过对游戏界面部分的设计与实现,研究并分析了在手机界面的设计原则,特别是对屏幕适配的原理和实现方式进行了详细探究,以期最大程度的增加游戏的适用性。另外还探究了游戏组件的设计原则,以期给游戏玩家带来更好的游戏体验。第三节详细描述了网络模块的实现过程,并对跑酷类游戏网络部分的设计原则和通讯协议的设计进行了探索,同时对网络部分进行封装,使网络模块更有利于集成,更好的为游戏通讯服务。第四节对实际游戏开发过程中经常遇到的问题图形渲染线程和网络通讯线程通讯的问题进行了解决方法的探究和实现。以上核心代码的实现,都是在实际游戏开发过程中使用的解决相关问题的方法,也是游戏实现过程中最核心的部分,通过本章的完成,基本搞清了联网手机游戏的开发难度和工作量,同时通过对核心部分进行封装和实现,方便了代码的重用,这也符合软件工程代码复用性的原则。第五章系统测试第五章系统测试系统测试及分析压力测试压力测试是种基本的质量保证行为,它是软件测试的重要部分。它的测试原理很简单......”。
7、“.....服务端的处理游戏逻辑的能力。对于游戏服务器来说,在线用户数量可以很多,这就要求对服务器的吞吐率和并发连接数做出预先判断。所谓吞吐率,是指服务器并发处理能力的量描述,单位是,指的是个并发用户数下单位时间内处理的请求数。个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。它代表了两个含义吞吐率和并发用户数相关不同的并发用户数下,吞吐率般是不同的。并发连接数指的是个时刻服务器所接受的请求数目,简单的讲就是个会话。单元测试单元测试是项目测试中的不可缺少的测试类型。在开发人员开发软件的过程中,它往往被开发人员用来测试自己编写的代码。本系统的单元测试采用自带的测试工具。对每个方法,过程进行测试。单元测试是由程序员自己来完成的,执行单元测试,就是为了检测所测试的代码是否和预期的致,这个方法是最常用的测试方法,并且在开发过程中就体现了出来的。服务端压力测试结果在普通的上部署该系统,局域网条件下,采用黑盒测试,当每秒收发个数据的情况下......”。
8、“.....消耗。测试结果如下图所示图客户端每秒个数据包下的测试结果图客户端每秒个数据包下的测试结果由于是在普通机上部署的该系统,在游戏正常进行的情况下,每秒个数据包的情况下,当连接数量达到台时,使用率,也就是说此时服务器的性能限制了连接的数量。正常游戏时每个游戏房间消费网络带宽大约为。对于轻度手机网络游戏而言,主要强调游戏的对战性,对大部分类型游戏,并不需要如此强度的联网效果。所以这基本能满足轻度手机联网游戏的每个服务器可容纳个用户的需要。单元测试结果第五章系统测试在游戏的实现过程中对每个功能模块都进行了单元测试,经过测试,系统的每个功能模块都能按照设计要求正常运行。北京大学硕士学位论文第六章结论与展望结论经过测试,对于该类轻度手机网络游戏来说,该系统能够正常运行并能达到玩家流畅交互对战的需求。客户端和服务端的各项功能都能稳定运行,尽管这还和实际游戏的开发和运营有定的差距,实现还需要更多的改良......”。
9、“.....不管是硬件还是软件,都是中小企业甚至个人开发者所能承受的,通过本系统的设计与开发,本系统的设计模式不仅适用于跑酷类联网游戏,只需要稍做修改,还可以适用于像三消类对战游戏动作游戏桌面游戏等多种轻度手机游戏类型。本系统的开发,也有利于减少轻度手机网络游戏开发者学习的时间成本,减轻游戏开发人员对学习联网游戏联网模块的恐惧感。展望通过本系统的设计与实现,让我对轻度联网手机游戏的设计和实现过程有了个充足的了解,对轻度联网手机游戏的开发成本有了充分的了解。虽然经过长时间的学习实现了本系统,但是本系统还是有很多问题去解决和研究,需要在实际应用中积累和完善各个细节。特别是在以下几个方面需要更进步的测试和研究在本系统的设计与实现中,只是简单的实现了游戏的对战功能,这对于般游戏的游戏性可言,是远远不够的,例如在游戏中加入障碍物,在游戏主角奔跑的过程中加入更多的动作,金币等来提高游戏的可玩性。在客户端与服务端的连接数量方面还有待提高。在现在主流的手机联网游戏中,由于受众群体很大......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。