论文部分内容阅读
随着互联网技术的迅速发展和网络硬件性能的不断提高,网络游戏已经成为电子游戏产业中增长最快的游戏类型,同时也成为了IT行业中一个重要的利润增长点,其巨大的市场需求吸引了越来越多的专业游戏开发商加入。网络游戏服务器需要同时为大量的客户服务,因而它需要有很好的稳定性,同时需要及时响应客户的请求,因此其对于实时性的要求也很高。而通信部分是网络服务器的支柱,所以通信框架在系统中的效率直接决定服务器的性能。系统资源的分配方式、Socket的管理、I/O模式的选择以及游戏协议的制定等都将直接影响到通信的效率。本文选择Linux平台上的Epoll机制作为网络通信模型的基本架构,Epoll机制用于网络游戏的通讯层,它为游戏服务器在大量用户并发请求的问题上提供了一个良好的解决方案,同时结合网络游戏协议层和线程池技术等可构造一个高效的网络游戏服务器。本文首先对网络游戏的研究历史及其发展趋势做了简单的分析,之后阐述了网络游戏服务器的结构和特点,并在此基础上重点研究了服务器中通信架构的功能需求和体系结构设计;为了提高系统整体架构的可扩展性和可维护性,采用了面向对象方法减少模块间的耦合度,增强系统的通用性。其次详细分析了网络游戏服务器中通信系统的层次架构等通信方面的相关技术,简单介绍了socket描述符。并对多种网络I/O模型各自的优缺点进行了对比,重点分析了Epoll模型。由于整个网络通信过程均是采用事件驱动I/O方式,而如何处理大量用户并发请求一直是网络游戏服务器的一个瓶颈。本文研究通过Epoll管理socket描述符来处理大量客户的连接以及数据传输的问题,最后对系统各个模块进行逐个设计和实现,包括网络I/O管理、Socket监听、游戏协议的制定和内存池的设计等,对解决服务器设计中遇到的问题有很好的工程参考价值。