没有合适的资源?快使用搜索试试~ 我知道了~
【精品】服务器核心模块概要设计.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 143 浏览量
2022-07-07
10:18:57
上传
评论
收藏 1.13MB DOC 举报
温馨提示
试读
45页
【精品】服务器核心模块概要设计
资源推荐
资源详情
资源评论
服务器核心模块概要设计
1 引言 ...........................................................................................................................................1
1.1 编写目的 .......................................................................................................................1
1.2 背景 ...............................................................................................................................1
2 总体设计 ...................................................................................................................................2
2.1 需求规定 .......................................................................................................................2
2.2 运行环境 .......................................................................................................................2
2.3 开发环境 .......................................................................................................................2
2.4 基本设计概念和处理流程 ...........................................................................................2
2.4.1 调用模型 ...........................................................................................................2
2.4.2 基于事件驱动的数据处理模型 .......................................................................2
2.4.3 事件数据设计 ...................................................................................................3
2.4.4 框架体系设计 ...................................................................................................3
2.5 功能模块划分 ...............................................................................................................3
3 模块详细设计 ...........................................................................................................................4
3.1 数据队列服务 QueueService 模块设计......................................................................4
3.1.1 基本设计概念 ...................................................................................................4
3.1.2 类与接口设计 ...................................................................................................4
3.3.1 运行流程 ...........................................................................................................8
3.2 网络引擎 TCPSocketEngine 模块设计 ......................................................................8
3.2.1 网络重叠完成端口 IOCP 简介 .......................................................................8
3.2.2 基本设计概念 ...................................................................................................9
3.2.3 网络数据命令包结构设计 .............................................................................10
3.2.4 网络数据加密设计 .........................................................................................10
3.2.5 类与接口设计 .................................................................................................11
3.3 数据库引擎 DataBaseEngine 模块设计 ...................................................................11
3.3.1 基本设计概念 .................................................................................................11
3.3.2 类与接口设计 .................................................................................................11
3.3.3 运行流程 .........................................................................................................22
3.4 定时器引擎 TimerEngine 模块设计.........................................................................23
3.4.1 基本设计概念 .................................................................................................23
3.4.2 类与接口设计 .................................................................................................23
3.4.3 运行流程 .........................................................................................................26
3.5 调度引擎 AttemperEngine 模块设计 .......................................................................26
3.5.1 基本设计概念 .................................................................................................26
3.5.2 类与接口设计 .................................................................................................26
3.5.3 运行流程 .........................................................................................................30
3.6 异步引擎 AsynchronismEngine 模块设计...............................................................31
3.6.1 基本设计概念 .................................................................................................31
3.6.2 类与接口设计 .................................................................................................31
3.6.3 运行流程 .........................................................................................................34
3.7 服务引擎 ServiceEngine 模块设计 ...........................................................................35
3.7.1 基本设计概念 .................................................................................................35
3.7.2 类与接口设计 .................................................................................................35
3.7.3 运行流程 .........................................................................................................40
1 引言
1.1 编写目的
方便二次开发人员理解服务器核心技术
1.2 背景
3.3.1 为一般游戏服务器设计的核心模块
3.3.2 本项目的任务开发者:Godzilar
系统使用用户: 游戏服务器二次开发人员
2 总体设计
2.1 需求规定
3.3.1 系统功能
提供网络服务接口,数据库访问接口,定时器接口,并提供调度钩子接口,让二次开发人员调用,
更多精力处理游戏逻辑
3.3.2 系统性能
网络负载支持 2000 同时在线连接以上
数据库访问支持 100 并发访问
定时器时间精度达 25ms 之内
2.2 运行环境
硬件平台:x86 体系结构
软件平台:Window2003 操作系统
2.3 开发环境
开发工具:Visual C++ 2003
开发语言:C++
2.4 基本设计概念和处理流程
2.4.1 调用模型
利用面向对象思想多态性,调用方保存着被调用方的基础接口指针(一般称呼为 钩子),调用
方直接调用接口指针里面方法,方法具体实现逻辑由该接口的派生类实现.示意图:
2.4.2 基于事件驱动的数据处理模型
被调用方 B
调用方 A
接口指针
虚类接口
派生类
为系统功能设计,需要处理网络事件数据 SocketEvent,数据库事件数据 DatabaseEvent,定时
器事件数据 TimerEvent 等,为此建立数据队列服务 QueueService,为每一队列建立多个子线程
QueueServiceThread 处理。数据队列服务提供添加事件数据方法 AddToQueue,设置数据队列
服务钩子 SetQueueServiceSink,让数据队列服务钩子 QueueServiceSink 做具体逻辑事件数据处
理。
示意图:
再者,根据网络,数据库等特定功能,构建网络,数据库等管理服务,实现数据队列服务钩子
QueueServiceSink 方法,调度事件数据执行外部处理接口,外部处理接口具体由二次开发用户
实现。示意图:
2.4.3 事件数据设计
名称
描述
类型
定时器事件
TimerEvent
根据时间间隔,定期产生
自发,被动
数 据 库 事 件
DatabaseEvent
请求访问数据库
用户自定义,主动
网络应答事件
SocketAcceptEvent
客户端连接网络服务,成功连接
自发,被动
网络读取事件
SocketReadEvent
客户端发送数据,网络服务成功读取
自发,被动
网络关闭事件
SocketControlEvent
客户端失去连接
自发,被动
控制事件
ControlEvent
用户自定义控制服务
用户自定义,主动
2.4.4 框架体系设计
内部线程
Thread
处理执行
数据队列服务
QueueService
事 件 数 据
输入
执行数据队列服务钩子
QueueServiceSink 方法
外部处理接口
管理服务
实现数据队列服务钩子
QueueServiceSink 方法
2.5 功能模块划分
名称
描述
开发优先
数据队列服务
QueueService
外部接受输入事件数据,内部实现事件数据链表保存与管
理, 处理子线程从链表获取事件数据调用数据队列钩子方
法处理事件数据
1
网络引擎
TCPSocketEngine
实现数据队列服务钩子方法,管理网络事件数据,内部启
动网络服务器监听服务,接收与发送网络数据,并调用网络
处理钩子进行逻辑处理
2
数据库引擎
DataBaseEngine
实现数据队列服务钩子方法,管理数据库事件数据,并调
用数据库处理钩子进行逻辑处理,还提供数据库访问的帮
助类
2
定时器引擎
TimerEngine
实现设置定时,删除定时请求,发生定时事件
2
调度引擎
AttemperEngine
接收,调度与管理网络事件数据,数据库事件数据,定时
器事件数据,自定义调度事件数据
2
异步引擎
AsynchronismEngine
设置多个数据处理钩子,异步接收请求并处理
2
外部 实现
内部 服务引擎 ServiceEngine
调度引擎
AttemperEngine
网络引擎 TCPSocketEngine
数据库引擎 DataBaseEngine
定时器引擎
TimerEngine
调度引擎钩子
AttemperEngineSink
数据库引擎钩子
DataBaseSink
异步引擎
TimerEngine
异步引擎钩子
DataBaseSink
服务引擎
ServiceEngine
管理网络引擎,数据库引擎,定时器引擎,调度引擎,异
步引擎
3
3 模块详细设计
3.1 数据队列服务 QueueService 模块设计
3.1.1 基本设计概念
建立一个内存链表,保存事件数据,对外部提供方法往链表添加事件数据并通知线程,
同时启动多个处理线程,从数据链表里获取事件数据,执行外部钩子方法进行处理.线
程事件通知采用完成端口技术.
3.1.2 类与接口设计
接口设计
IQueueServiceEngine
队列引擎接口
模块
QueueService
继承
IQueueServiceEngine IUnknownEx
实现
数据成员
名称
说明
方法
virtual bool __cdecl StartService(BYTE cbThreadCount)
开始服务
参数
BYTE cbThreadCount 处理事件数据的线程数量
说明
返回
类型为 Bool,启动成功返回 true,否则 false
举例
virtual bool __cdecl StopService()
停止服务
参数
说明
返回
类型为 Bool,启动成功返回 true,否则 false
举例
virtual bool __cdecl SetQueueServiceSink(IUnknownEx * pIUnknownEx)
设置接口外部事件处理钩子
参数
IUnknownEx * pIUnknownEx 外部事件数据处理钩子
说明
返回
类型为 Bool,设置成功返回 true,否则 false
举例
virtual bool __cdecl GetBurthenInfo(tagBurthenInfo & BurthenInfo)
获取数据队列负荷信息
参数
tagBurthenInfo & BurthenInfo 负荷信息结构体
说明
返回
类型为 Bool,设置成功返回 true,否则 false
举例
剩余44页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 83
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240528_103010.jpg
- 基于Python的新能源承载力计算及界面设计源码 - HAINING-DG
- 基于Java的本科探索学习项目设计源码 - 本科探索
- 基于Javascript和Python的微商城项目设计源码 - MicroMall
- 基于Java的网上订餐系统设计源码 - online ordering system
- 基于Javascript的超级美眉网络资源管理应用模块设计源码
- 基于Typescript和PHP的编程知识储备库设计源码 - study-php
- Screenshot_2024-05-28-11-40-58-177_com.tencent.mm.jpg
- 基于Dart的Flutter小提琴调音器APP设计源码 - violinhelper
- 基于JavaScript和CSS的随寻订购网页设计源码 - web-order
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功