没有合适的资源?快使用搜索试试~ 我知道了~
JHServer游戏服务器系统开发说明.pdf
需积分: 9 35 下载量 151 浏览量
2011-07-28
16:57:44
上传
评论 1
收藏 515KB PDF 举报
温馨提示
试读
57页
介绍了一个网络游戏服务器开发系统。类似于ACE,该网络服务器系统采用了“异步模式、事件模式、任务模式”等开发模式,使用了智能指针。整个服务器系统分为“宿主(Host)、服务(Service)、精灵(Sprite)”三个模块。Host是主程序,加载Service和Sprite。Service是各个具体的服务。Sprite用于在各个Service之间通信。
资源推荐
资源详情
资源评论
本文介绍了一个基于事件模式的游戏服务器系统。该系统使用 VC++2005 从零开始进行
开发。仅用到了 boost 基础库。该系统对底层进行了封装,可以用在 Windows、Linux 等不
同的操作系统中。
该游戏系统分为三个部分:
基础库:提供了底层用到的对象,例如:智能指针、内存分配器、事件、列表、任
务等实用对象。
网络库:提供了基于异步模式的网络通信系统。
服务器系统库:提供了“网络宿主(Host)”、“网络服务(Service)”和“网络
精灵(Sprite)”三个主要对象。
基于事件的开发模式
基于事件模式的游戏服务器系统和多线程模式相比,整个系统都是运行在同一线程中,
无需多线程同步、加锁解锁等危险的操作。
使用事件模式,完全是“高内聚、低耦合”,非常适合模块开发,各模块间完全独立,
无需知道对方的数据结构,只通过“事件”互相联系。
由于开发者并不知道事件真正被触发的时机,因此使用“智能指针”能够在事件被执行
完毕后自动释放相关对象。
基于事件的网络系统
本游戏服务器的网络系统采用“网络节点(NetPeer)”,每个服务器都有一个 NetPeer。
NetPeer 通过事件来通知服务器。当 Accept 一个连接后,会触发 OnAccept 事件,当收到一
个数据包时会触发 OnRecvEnd 事件,当发送完毕一个数据包时会触发 OnSendEnd 事件。
基于精灵的服务器系统
游戏服务器系统中,Host 是每台机器运行的主程序,表示服务器网络系统中一个节点。
Host 负责加载 Service 和 Sprite。
Service 内部实现了游戏系统的各个模块,例如:登录服务、注册服务、房间服务、数
据库服务。Service 由 Host 加载到程序中,Service 之间的通信通过精灵(Sprite)来进行。
Sprite 用来进行各个 Host
中的各个 Service 间通讯
。例如:一个用户登录,首先利用精
灵到达“登录服务”取得相关信息,再抵达“房间服务”进入某个房间进行游戏。
1 JHSTD说明案......................................................................................................................................1
1.1 JHSTD基础对象的分类 ................................................................................................................1
1.2 智能指针RP ...................................................................................................................................1
1.2.1
创建智能指针
...............................................................................................................1
1.2.2
引用计数
.......................................................................................................................2
1.2.3
智能指针的使用
...........................................................................................................2
1.2.4
智能指针的转换
...........................................................................................................3
1.2.5 rp<void>
型智能指针
.....................................................................................................4
1.2.6
对象的
LifeID.................................................................................................................4
1.3 内存分配器ALLOCATOR................................................................................................................5
1.3.1 Allocator
介绍
.................................................................................................................5
1.3.2
内存池
...........................................................................................................................6
1.3.3
内存节点
.......................................................................................................................7
1.4 事件EVENT ....................................................................................................................................7
1.4.1
事件类(
Event
)
..........................................................................................................8
1.4.2
事件指针(
rp<Event>
)
.............................................................................................8
1.4.3
创建事件指针
...............................................................................................................9
1.4.4
触发事件
.....................................................................................................................10
1.4.5
修改事件
.....................................................................................................................11
1.4.6
事件队列
.....................................................................................................................13
1.4.7
定时器队列
.................................................................................................................15
1.4.8
分发事件
.....................................................................................................................16
1.5 列表 .............................................................................................................................................18
1.5.1
内联列表
LinkedList.....................................................................................................19
1.5.2
共享列表
SharedList ....................................................................................................20
1.5.3
旁视列表
LookedList....................................................................................................21
1.5.4
遍历列表
.....................................................................................................................22
1.5.5
列表事件
.....................................................................................................................23
1.5.6
观察者模式
.................................................................................................................24
1.6 异步调用 .....................................................................................................................................26
1.6.1 JH_AsyncCall ...............................................................................................................26
1.6.2 JH_TimerCall ...............................................................................................................27
1.7 任务 .............................................................................................................................................28
1.7.1
任务概述
.....................................................................................................................28
1.7.2
异步任务
.....................................................................................................................29
1.7.3
任务链
.........................................................................................................................30
2 JHNET说明案....................................................................................................................................32
2.1 JHUDP SOCKET层 ........................................................................................................................32
2.1.1
概述
.............................................................................................................................32
2.1.2
通信协议概要
.............................................................................................................32
2.1.3
建立连接
.....................................................................................................................32
2.1.4
维持连接
.....................................................................................................................33
2.1.5
收发数据包
.................................................................................................................33
2.2 NETLINK层 ...................................................................................................................................33
2.2.1
概述
.............................................................................................................................33
2.2.2
建立连接
.....................................................................................................................35
2.2.3
维持连接
.....................................................................................................................36
2.2.4
收发数据包
.................................................................................................................36
2.2.5
销毁连接
.....................................................................................................................36
2.3 NETCONNECT层............................................................................................................................37
2.3.1
概述
.............................................................................................................................37
2.3.2
建立连接
.....................................................................................................................37
2.3.3
维持连接
.....................................................................................................................37
2.3.4
收发数据包
.................................................................................................................38
2.3.5
销毁连接
.....................................................................................................................38
3 JHSERVER说明案............................................................................................................................39
3.1 概述 .............................................................................................................................................39
3.2 各部分模块介绍 .........................................................................................................................40
3.2.1
宿主程序(
Host
)
......................................................................................................40
3.2.2
服务(
Service
)
..........................................................................................................41
3.2.3
精灵(
Sprite
)
............................................................................................................41
3.3 编写SERVICE DLL .......................................................................................................................41
3.3.1 main
文件
......................................................................................................................42
3.3.2
用户自定义服务文件
.................................................................................................43
3.3.3 interface
文件
................................................................................................................43
3.4 编写SPRITE DLL..........................................................................................................................44
3.4.1 mian
文件
......................................................................................................................44
3.4.2
用户自定义精灵文件
.................................................................................................45
3.4.3 interface
文件
................................................................................................................46
3.5 编写HOST程序 ............................................................................................................................47
3.5.1 HostShell.......................................................................................................................48
3.5.2
加载服务
.....................................................................................................................48
3.5.3
启动精灵
.....................................................................................................................49
3.6 服务和精灵的互相访问 .............................................................................................................49
3.6.1
服务启动精灵
.............................................................................................................50
3.6.2
精灵访问服务
.............................................................................................................50
3.7 精灵寻找服务 .............................................................................................................................51
3.7.1
查找目的服务
.............................................................................................................52
3.7.2
返回出发点
.................................................................................................................52
剩余56页未读,继续阅读
资源评论
ad33k
- 粉丝: 176
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功