第1章 基础知识
1.1 什么是模块化
1.1.1 为什么要模块化
1.1.2 如何进行模块化
1.2 函数指针(Delegate)
1.3 Windows函数的使用
1.3.1 为什么要使用Windows函数
1.3.2 常用函数的使用
1.3.3 TCHAR的使用
1.4 类和继承
1.4.1 什么是继承
1.4.2 Virtual的使用
1.5 模板(Template)
1.6 运算符的重载(Operator Overloading)
1.7 服务器程序的思考方式
1.7.1 内存管理的比较
1.7.2 type的指定
1.7.3 类型转换的方法
1.7.4 Const的生活化
1.8 线程(Thread)
1.9 纤程(Fiber)
1.10 临界区(Critical Section)
1.11 小结
第2章 基础库的制作
2.1 Stream类
2.2 Registry类
2.3 IniFile类
2.4 CircularQueue类
2.5 Log类
2.6 小结
第3章 系统库的制作
3.1 MemoryPool类
3.1.1 内存管理
3.1.2 不同内存管理方法的说明
3.1.3 源代码分析
3.1.4 案例
3.2 Crypt类
3.2.1 简单的加密
3.2.2 源代码分析
3.2.3 案例
3.3 Service类
3.3.1 什么是Service
3.3.2 使用API说明
3.3.3 源代码分析
3.3.4 案例
3.4 MiniDump类
3.4.1 异常处理(Handled exception)和未处理异常(Unhandled exception)
3.4.2 小型转储(MiniDump)
3.4.3 使用API分析说明
3.4.4 源代码分析
3.4.5 案例
3.5 MemoryLeak类
3.5.1 源代码分析
3.5.2 案例
3.6 ThreadSync类
3.7 Random类
3.8 小结
第4章 Network Base的制作
4.1 Network类
4.1.1 源代码分析
4.1.2 TCP源代码分析
4.1.3 UDP源代码分析
4.1.4 案例
4.2 PacketSession类
4.2.1 TCP源代码分析
4.2.2 UDP源代码分析
4.3 EventSelect类
4.4 IOCP类
4.5 小结
第5章 网络模块(Network Module)的运用案例
5.1 TCP IOCP案例
5.1.1 源代码分析
5.1.2 案例
5.2 UDP IOCP案例
5.3 CClientSession案例
5.4 小结
第6章 实用模块的制作
6.1 Packet Generator的制作
6.1.1 语法
6.1.2 处理程序分析
6.1.3 使用方法
6.2 Performance Monitor的制作
6.2.1 性能监视器(Performance Monitor)
6.2.2 性能监视器注册表结构
6.2.3 性能监视器DLL结构
6.2.4 源代码分析
6.2.5 使用方法
6.3 小结
第7章 客户端/服务器(Client/Server)的应用
7.1 源代码整理
7.2 服务器的基本制作
7.2.1 Serverlocp类
7.2.2 ConnectedSession类
7.2.3 ConnectedSessionManager类
7.2.4 Serverlocp类的添加
7.2.5 Server.cpp的添加
7.2.6 KeepAlive的添加
7.3 客户端的基本制作
7.3.1 TestClientSession类
7.3.2 Main
7.4 协议(Protocol)的定义
7.5 协议(Protocol)的整理
7.5.1 服务器协议的处理
7.5.2 客户端的添加事项
7.6 功能操作的确认
7.7 小结
第8章 UDP Hole Punching
8.1 NAT类型
8.1.1 Full Cone NAT
8.1.2 Restricted Cone NAT
8.1.3 Port Restricted Cone NAT
8.1.4 Symmetric NAT
8.2 什么是UDP Hole Punching
第9章 游戏服务器案例
9.1 协议(Protocol)分析
9.2 Character类说明
9.3 ConnectedUser类说明
9.4 ConnectedUserManager类说明
9.5 Room类说明
9.6 RoomManager类说明
9.7 GameIOCP类说明
9.8 GameUDPIOCP类说明
9.9 LobbyProtocol处理
9.10 GameProtocol处理
9.11 小结
附录A 服务器设计案例
作者寄语