第1章 基础知识 1
1.1什么是模块化 1
为什么要模块化 1
如何进行模块化 2
1.2函数指针(Delegate) 3
1.3 Windows函数的使用 4
为什么要使用Windows函数 4
常用函数的使用 4
TCHAR的使用 6
1.4类和继承 9
什么是继承 9
Virtual的使用 11
1.5模板(Template) 13
1.6运算符的重载(Operator Overloading) 13
1.7服务器程序的思考方式 14
内存管理的比较 14
type的指定 15
类型转换的方法 15
Const的生活化 15
1.8线程(Thread) 15
1.9纤程(Fiber) 17
1.10临界区(Critical Section) 18
1.11小结 19
第2章 基础库的制作 21
2.1 Stream类 22
2.2 Registry类 31
2.3 IniFile类 40
2.4 CircularQueue类 44
2.5 Log类 48
2.6小结 49
第3章 系统库的制作 51
3.1 MemoryPool类 51
内存管理 51
不同内存管理方法的说明 51
源代码分析 52
案例 54
3.2 Crypt类 55
简单的加密 55
源代码分析 56
案例 57
3.3 Service类 57
什么是Service 57
使用API说明 59
源代码分析 61
案例 66
3.4 MiniDump类 68
异常处理(Handled exception)和未处理异常(Unhandled exception) 68
小型转储(MiniDump) 69
使用API分析说明 69
源代码分析 70
案例 72
3.5 MemoryLeak类 74
源代码分析 74
案例 75
3.6 ThreadSync类 76
3.7 Random类 80
3.8小结 82
第4章 Network Base的制作 83
4.1 Network类 83
源代码分析 83
TCP源代码分析 86
UDP源代码分析 100
案例 111
4.2 PacketSession类 111
TCP源代码分析 114
UDP源代码分析 117
4.3 EventSelect类 120
4.4 IOCP类 125
4.5小结 134
第5章 网络模块(Network Module)的运用案例 135
5.1 TCP IOCP案例 135
源代码分析 135
案例 142
5.2 UDP IOCP案例 142
5.3 CClientSession案例 143
5.4小结 148
第6章 实用模块的制作 149
6.1 Packet Generator的制作 149
语法 149
处理程序分析 150
使用方法 162
6.2 Performance Monitor的制作 165
性能监视器(Performance Monitor) 165
性能监视器注册表结构 167
性能监视器DLL结构 168
源代码分析 169
使用方法 177
6.3小结 177
第7章 客户端/服务器(Client/Server)的应用 179
7.1源代码整理 179
7.2服务器的基本制作 182
Serverlocp类 186
ConnectedSession类 187
ConnectedSessionManager类 188
Serverlocp类的添加 189
Server.cpp的添加 191
KeepAlive的添加 192
7.3客户端的基本制作 196
TestClientSession类 196
Main 197
7.4协议(Protocol)的定义 198
7.5协议(Protocol)的整理 206
服务器协议的处理 206
客户端的添加事项 214
7.6功能操作的确认 219
7.7小结 219
第8章 UDP Hole Punching 221
8.1 NAT类型 221
Full Cone NAT 221
Restricted Cone NAT 222
Port Restricted Cone NAT 222
Symmetric NAT 223
8.2什么是UDP Hole Punching 223
第9章 游戏服务器案例 225
9.1协议(Protocol)分析 225
9.2 Character类说明 242
9.3 ConnectedUser类说明 244
9.4 ConnectedUserManager类说明 249
9.5 Room类说明 254
9.6 RoomManager类说明 293
9.7 GameIOCP类说明 296
9.8 GameUDPIOCP类说明 310
9.9 LobbyProtocol处理 315
9.10 GameProtocol处理 324
9.11小结 332
附录A 服务器设计案例 333
作者寄语 335