第1部分 基础知识 1
第1章 网络编程介绍 1
1.1 为什么要了解基本知识 1
1.2 通信网络史的发展概况 2
1.3 IP的基本原理和分层体系结构 11
1.4 常见的传输协议 14
1.5 网络协议有关信息 18
1.6 小结 18
第2章 Winsock/Berkeley Sockets编程 19
2.1 字节顺序 19
2.2 什么是Socket 22
2.3 Sockets API 24
2.4 域名系统 39
2.5 示例2.1 因特网服务器 43
2.6 示例2.2 因特网客户机 47
2.7 使用Select()避免多线程 49
2.8 示例2.3 因特网服务器版本2 51
2.9 示例2.4 因特网客户机版本2 54
2.10 小结 56
第3章 多线程 57
3.1 什么是多线程 57
3.2 ThreadLib 66
3.3 示例3.1——基本线程 74
3.4 示例3.2——线程放弃处理器 76
3.5 ThreadLib互斥锁 77
3.6 示例3.3——互斥锁 79
3.7 小结 80
第4章 基本库 81
4.1 大数字 81
4.2 现在是几点 83
4.3 字符串 90
4.4 日志记录 100
4.5 小结 104
第5章 Socket库 105
5.1 Socket API包装器类和函数 105
5.2 连接、管理器和策略 115
5.3 小结 135
第6章 Telnet协议和简单的聊天服务器 136
6.1 Telnet 136
6.2 ConnectionHandler类 142
6.3 创建一个Telnet协议类 142
6.4 示例6.2——SimpleChat 147
6.5 小结 158
第2部分 创建SimpleMUD 159
第7章 设计SimpleMUD 159
7.1 选择游戏特性 159
7.2 设置 160
7.3 玩家 161
7.4 物品 167
7.5 敌人 169
7.6 小小世界 169
7.7 商店 171
7.8 战斗 171
7.9 命令 172
7.10 小结 174
第8章 物品和玩家 175
8.1 基础内容 175
8.2 日志 193
8.3 属性 194
8.4 物品 196
8.5 玩家 202
8.6 处理器设计 223
8.7 示例8.1——SimpleMUD基线:核心、玩家和物品 248
8.8 小结 251
第9章 映射、商店和训练房 252
9.1 向基线添加新特性 252
9.2 改变 262
9.3 运行改进的SimpleMUD 275
9.4 小结 277
第10章 敌人、战斗和游戏循环 278
10.1 敌人和敌人模板 278
10.2 数据库 283
10.3 游戏循环 285
10.4 游戏增加的内容 296
10.5 运行最后的版本 301
10.6 小结 302
11.1 隐藏在BetterMUD背后的思想 304
第11章 BetterMUD 304
第3部分 创建BetterMUD 304
11.2 逻辑模块 310
11.3 物理性质的总体设计 310
11.4 小结 316
第12章 实体、访问器和数据库 317
12.1 基本实体概念 317
12.2 数据库 328
12.3 小结 336
第13章 实体、访问器和数据库(续) 337
13.1 数据银行 337
13.2 实体 340
13.3 数据库 362
13.4 访问器 370
13.5 小结 380
14.1 脚本 381
第14章 脚本、动作、逻辑和命令 381
14.2 动作 382
14.3 逻辑 389
14.4 命令 390
14.5 小结 395
第15章 游戏逻辑 396
15.1 游戏模块 396
15.2 总体模块设计 400
15.3 游戏的内容 418
15.4 主函数 433
15.5 小结 435
第16章 网络系统 436
16.1 文件 436
16.2 更好的设计 436
16.3 更好的Telnet 441
16.4 处理器设计 444
16.5 小结 450
第17章 Python语言 451
17.1 Python语言 451
17.2 Python与C++的集成 464
17.3 BetterMUD的Python库 469
17.4 将C++暴露给Python 486
17.5 将BetterMUD暴露给Python 490
17.6 小结 493
第18章 制作游戏 494
18.1 逻辑脚本 494
18.2 Python脚本基类 496
18.3 命令脚本 497
18.4 逻辑脚本 501
18.5 小结 543
结论 545
随书所带光盘的内容 556