网络游戏服务器端网络引擎的研究与实现

网络游戏服务器端网络引擎的研究与实现

论文摘要

论文以网络游戏服务器开发为背景,在研究了如何开发稳定、高效的服务器基础上,给出了利用Windows操作系统提供的一种高效I/O机制-IOCP机制以及多线程处理技术,来设计和开发网络游戏服务器端网络引擎的具体方法。论文首先介绍了网络游戏的发展历史以及网络游戏的分类,对开发网络游戏服务器端网络引擎的主要技术,如IOCP机制,多线程技术以及传输协议等做了研究。接着给出了网络游戏服务器端网络引擎的整体架构,并实现了网络引擎,将整个网络引擎分成三层实现,这三层分别是网络数据高效收发层、网络数据高效处理层和逻辑业务处理层。其中网络数据高效收发层使用了Windows操作系统提供的IOCP机制来设计和实现,它完成了对大量用户并发连接的处理和数据包的高效接收、发送。网络数据高效处理层使用了多种线程来完成对数据包的高效处理,共有三类线程:解包线程,该线程将底层接收到的物理数据包利用环形缓存区分解成一个一个的逻辑数据包;逻辑数据包处理线程,该线程调用逻辑业务处理层提供的方法处理逻辑数据包;发送线程,该线程将要发送的数据经过加密处理后投递到IOCP端口上。逻辑业务处理层与游戏逻辑、游戏协议交互,它主要提供了使用引擎的接口,游戏逻辑开发人员正确的使用这些接口就可以调用底层网络引擎提供的数据传输功能。最后论文给出了作者在引擎基础上实现的一个象棋游戏服务器,并对该服务器做了性能测试,测试结果表明本文开发的网络引擎在面对大量客户并发访问时是稳定的,高效的,达到了预期的水平。

论文目录

  • 摘要
  • Abstract
  • 1 绪论
  • 1.1 网络游戏概述
  • 1.1.1 网络游戏的发展历史
  • 1.1.2 网络游戏的分类
  • 1.2 研究的背景和目的
  • 1.3 论文主要内容
  • 2 网络引擎开发相关技术的研究
  • 2.1 网络通信技术的研究
  • 2.1.1 通信协议
  • 2.1.2 客户/服务器编程模型
  • 2.2 IOCP机制和使用方法
  • 2.2.1 IOCP机制
  • 2.2.2 IOCP的使用方法
  • 2.3 多线程技术
  • 2.3.1 线程概念
  • 2.3.2 线程与进程的区别
  • 2.3.3 线程的使用
  • 3 服务器端网络引擎架构设计
  • 4 网络数据高效收发层的设计与实现
  • 4.1 网络数据高效收发层的设计
  • 4.1.1 句柄唯一数据结构(客户上下文套接字)
  • 4.1.2 I/O唯一数据结构(缓冲区)
  • 4.1.3 CNetServer类
  • 4.2 网络数据高效收发层的实现
  • 4.2.1 内存池的实现
  • 4.2.2 恶意客户连接
  • 4.2.3 数据包乱序
  • 4.2.4 监听线程实现
  • 4.2.5 服务线程实现
  • 4.2.6 虚函数接口
  • 5 网络数据高效处理层的设计与实现
  • 5.1 网络数据高效处理层的设计
  • 5.2 网络数据高效处理层的实现
  • 5.2.1 解包线程的实现
  • 5.2.2 逻辑数据处理线程的实现
  • 5.2.3 数据发送线程的实现
  • 5.3 环行缓存区
  • 5.3.1 环行缓存区的设计
  • 5.3.2 环行缓存区的实现
  • 6 逻辑业务处理层
  • 6.1 逻辑业务处理层实现说明
  • 6.2 象棋游戏服务器的实现
  • 7 实现结果及性能测试
  • 7.1 实现结果
  • 7.2 性能测试
  • 结论
  • 参考文献
  • 攻读硕士学位期间发表学术论文情况
  • 致谢
  • 相关论文文献

    标签:;  ;  ;  ;  

    网络游戏服务器端网络引擎的研究与实现
    下载Doc文档

    猜你喜欢