第一部分 开始网络编程 2
第1章 理解网络编程和套接字 2
1.1 理解网络编程和套接字 2
1.2 基于Linux的文件操作 9
1.3 基于Windows平台的实现 15
1.4 基于Windows的套接字相关函数及示例 18
1.5 习题 24
第2章 套接字类型与协议设置 26
2.1 套接字协议及其数据传输特性 26
2.2 Windows平台下的实现及验证 32
2.3 习题 35
第3章 地址族与数据序列 36
3.1 分配给套接字的IP地址与端口号 36
3.2 地址信息的表示 39
3.3 网络字节序与地址变换 42
3.4 网络地址的初始化与分配 45
3.5 基于Windows的实现 52
3.6 习题 57
第4章 基于TCP的服务器端/客户端(1) 59
4.1 理解TCP和UDP 59
4.2 实现基于TCP的服务器端/客户端 64
4.3 实现迭代服务器端/客户端 71
4.4 基于Windows的实现 77
4.5 习题 81
第5章 基于TCP的服务器端/客户端(2) 82
5.1 回声客户端的完美实现 82
5.2 TCP原理 91
5.3 基于Windows的实现 96
5.4 习题 99
第6章 基于UDP的服务器端/客户端 101
6.1 理解UDP 101
6.2 实现基于UDP的服务器端/客户端 103
6.3 UDP的数据传输特性和调用connect函数 109
6.4 基于Windows的实现 114
6.5 习题 117
第7章 优雅地断开套接字连接 118
7.1 基于TCP的半关闭 118
7.2 基于Windows的实现 124
7.3 习题 127
第8章 域名及网络地址 128
8.1 域名系统 128
8.2 IP地址和域名之间的转换 130
8.3 基于Windows的实现 136
8.4 习题 138
第9章 套接字的多种可选项 140
9.1 套接字可选项和I/O缓冲大小 140
9.2 SO REUSEADDR 145
9.3 TCP NODELAY 150
9.4 基于Windows的实现 152
9.5 习题 154
第10章 多进程服务器端 155
10.1 进程概念及应用 155
10.2 进程和僵尸进程 159
10.3 信号处理 165
10.4 基于多任务的并发服务器 173
10.5 分割TCP的I/O程序 178
10.6 习题 182
第11章 进程间通信 183
11.1 进程间通信的基本概念 183
11.2 运用进程间通信 188
11.3 习题 193
第12章 I/O复用 194
12.1 基于I/O复用的服务器端 194
12.2 理解select函数并实现服务器端 197
12.3 基于Windows的实现 206
12.4 习题 209
第13章 多种I/O函数 211
13.1 send&recv函数 211
13.2 readv&writev函数 221
13.3 基于Windows的实现 225
13.4 习题 229
第14章 多播与广播 230
14.1 多播 230
14.2 广播 236
14.3 基于Windows的实现 240
14.4 习题 242
第二部分 基于Linux的编程 246
第15章 套接字和标准I/O 246
15.1 标准I/O函数的优点 246
15.2 使用标准I/O函数 249
15.3 基于套接字的标准 I/O函数使用 252
15.4 习题 254
第16章 关于I/O流分离的其他内容 255
16.1 分离I/O流 255
16.2 文件描述符的复制和半关闭 259
16.3 习题 264
第17章 优于select的epoll 265
17.1 epoll理解及应用 265
17.2 条件触发和边缘触发 273
17.3 习题 283
第18章 多线程服务器端的实现 284
18.1 理解线程的概念 284
18.2 线程创建及运行 287
18.3 线程存在的问题和临界区 296
18.4 线程同步 299
18.5 线程的销毁和多线程并发服务器端的实现 306
18.6 习题 312
第三部分 基于Windows的编程 316
第19章 Windows平台下线程的使用 316
19.1 内核对象 316
19.2 基于Windows的线程创建 317
19.3 内核对象的2种状态 322
19.4 习题 325
第20章 Windows中的线程同步 327
20.1 同步方法的分类及CRITICAL_SECTION同步 327
20.2 内核模式的同步方法 331
20.3 Windows平台下实现多线程服务器端 339
20.4 习题 343
第21章 异步通知I/O模型 344
21.1 理解异步通知I/O模型 344
21.2 理解和实现异步通知I/O模型 346
21.3 习题 356
第22章 重叠I/O模型 357
22.1 理解重叠I/O模型 357
22.2 重叠I/O的I/O完成确认 362
22.3 习题 370
第23章 IOCP 371
23.1 通过重叠I/O理解IOCP 371
23.2 分阶段实现IOCP程序 379
23.3 习题 387
第四部分 结束网络编程 390
第24章 制作HTTP服务器端 390
24.1 HTTP概要 390
24.2 实现简单的Web服务器端 394
24.3 习题 401
第25章 进阶内容 403
25.1 网络编程学习的其他内容 403
25.2 网络编程相关书籍介绍 404
索引 406