第1章 TCP/IP 1
1.1 TCP/IP族简介 1
1.1.1 OSI模型 1
1.1.2 TCP/IP结构 2
1.1.3 常用协议 3
1.1.4 进程/应用层协议 5
1.1.5 RFC和标准简单服务 6
1.2 TCP/IP基本概念 7
1.2.1 IP地址与子网掩码 7
1.2.2 地址解析 9
1.2.3 域名系统 10
1.2.4 数据包的封装和分用 10
1.2.5 IP数据报 11
1.2.6 UDP数据报 14
1.2.7 TCP数据报 15
1.2.8 端口号 21
第2章 Windows网络编程基础 22
2.1 Winsock基本概念 22
2.1.1 套接字(Sockets) 22
2.1.2 基本概念 23
2.1.3 字节顺序 25
2.2 Winsock编程原理 25
2.2.1 Winsock的启动和终止 25
2.2.2 错误检查和控制 26
2.2.3 Winsock编程模型 26
2.3 Winsock I/O模型 31
2.3.1 Select模型 32
2.3.2 WSAAsyncSelect模型 33
2.3.3 WSAEventSelect模型 34
2.4 Winsock2的扩展特性 36
2.4.1 原始套接字 37
2.4.2 重叠I/O模型 37
2.4.3 服务的质量(QOS) 38
2.5 套接字选项和I/O控制命令 40
2.5.1 套接字选项 40
2.5.2 I/O控制命令 41
2.6 WinInet网络编程基础 42
2.6.1 MFC WinInet类 43
2.6.2 利用WinInet API进行编程 53
2.7 MFC Windows Sockets网络编程基础 61
2.7.1 CAsynSocket类 62
2.7.2 CSocket类 66
2.8 多线程编程 70
2.8.1 Win32基础上的多线程编程 71
2.8.2 基于MFC的多线程编程 73
2.9 Winsock API详解 75
第3章 TCP、UDP高级编程 76
3.1 TCP实现客户机/服务器聊天 76
3.1.1 服务器端程序开发 76
3.1.2 客户端程序开发 82
3.1.3 程序运行演示 85
3.2 UDP实现点对点聊天程序开发 86
3.2.2 代码分析 87
3.2.1 实现原理 87
3.2.3 程序演示 93
3.3 TCP/UDP聊天程序高级开发 95
3.3.1 实现原理 95
3.3.2 代码分析 95
3.3.3 程序运行演示 124
3.4 小结 124
第4章 基本网络应用 126
4.1 获取计算机IP地址和计算机名 126
4.1.1 实现原理 126
4.1.2 程序实现 127
4.2.1 实现原理 130
4.2 获取域名、子网掩码、网卡类型 130
4.2.2 程序实现 133
4.3 获取网卡的MAC地址 136
4.3.1 实现原理 136
4.3.2 程序实现 139
4.4 获取系统支持的网络协议信息 140
4.4.1 实现原理 140
4.4.2 程序实现 143
4.5 端口扫描高级编程 152
4.5.1 实现原理 153
4.5.2 程序实现 153
4.6 超级链接高级编程 158
4.6.1 实现原理 159
4.6.2 程序实现 159
4.7 TCP/IP超级终端 164
4.7.1 实现原理 165
4.7.2 程序实现 165
第5章 FTP高级编程 170
5.1 FTP简介 170
5.2 安装设置FTP服务器 171
5.3 使用Windows内置FTP客户端程序 175
5.4 深入FTP 178
5.4.1 FTP工作原理 178
5.4.2 FTP命令 184
5.5 FTP服务器高级编程 203
5.5.1 建立工程项目 203
5.5.2 实例分析 204
5.5.3 实例测试 216
5.6 FTP客户端高级编程 217
5.6.1 建立工程项目 218
5.6.2 实例分析 219
5.7 小结 245
第6章 HTTP高级编程 246
6.1 HTTP介绍 246
6.1.1 HTTP背景 246
6.1.2 HTTP的内容 249
6.1.3 消息(Message) 250
6.1.4 请求(Request) 251
6.1.5 响应(Response) 255
6.1.6 访问认证 258
6.1.7 URL编码 261
6.2 获取远程服务器文件信息 262
6.1.8 HTTP的应用 262
6.3 网站下载高级开发 266
6.4 网络浏览器高级开发 287
6.4.1 实现原理 287
6.4.2 实例实现 288
6.5 Web Server高级开发 296
6.5.1 Web Server相关理论 296
6.5.2 实例实现 297
6.6 小结 317
第7章 FTP高级编程 318
7.1 Telnet简介 318
7.2 使用Windows的Telnet程序登录远程服务器 319
7.3.1 Telnet概述 320
7.3 深入Telnet协议 320
7.3.2 Telnet命令 325
7.3.3 NVT ASCII字符集 326
7.3.4 协商选项 326
7.3.5 子协商选项 327
7.3.6 Telnet操作方式 328
7.4 Telnet客户端--BBS高级程序开发 329
7.4.1 实例实现 329
7.4.2 实例分析 330
7.5 小结 346
第8章 E-mail协议及高级编程 347
8.1 SMTP、POP3与E-mail 347
8.2 信件结构详述 347
8.2.1 RFC822信件的格式和内容 347
8.2.2 构造符合RFC822的信件 355
8.2.3 RFC822信件的语法分析 356
8.3 MIME编码解码与发送附件 357
8.3.1 RFC822的局限 357
8.3.2 Unencode编码与解码 357
8.3.3 MIME及其编码 360
8.3.4 构造MIME信件 377
8.3.5 MIME信件的语法分析 379
8.4 SMTP及发送电子邮件 380
8.4.1 SMTP的模型描述 380
8.4.2 SMTP的会话过程 380
8.5 发送无附件E-mail程序 388
8.5.1 实例实现 388
8.5.2 代码分析 389
8.6 发送有附件的邮件 391
8.6.1 实例实现 391
8.6.2 代码分析 391
8.7 POP3与接收电子邮件 421
8.7.1 POP3的模型描述 421
8.7.2 POP3的会话过程 421
8.8 接收E-mail的程序 429
8.8.1 实例实现 429
8.8.2 代码分析 430
8.9 E-mail乱码 442
8.9.1 乱码的常见形式及形成原因 442
8.9.2 避免乱码的方法 443
8.11 小结 444
8.10 MAPI概述 444
第9章 ICMP高级开发 445
9.1 ICMP 445
9.1.1 ICMP报文格式 445
9.1.2 ICMP时间戳请求与应答 447
9.1.3 回显请求和回显应答报文 447
9.1.4 ICMP地址掩码请求与应答 448
9.1.5 ICMP端口不可达差错 448
9.2 Windows自带程序应用 448
9.2.1 ping命令测试 449
9.2.2 Traceroute命令测试 450
9.3 ICMP高级实例开发 451
9.3.1 实现原理 451
9.3.2 代码分析 452
9.3.3 实例演示 462
9.4 小结 463
第10章 远程访问(RAS)高级编程 464
10.1 RAS客户机 464
10.2 建立拨号连接 465
10.3 RAS重要函数说明 469
10.3.1 连接函数 470
10.3.2 连接管理函数 474
10.3.3 电话簿和用户凭证管理 478
10.3.4 拨号方式 479
10.4 RAS高级程序开发实例 481
10.4.1 实例实现 481
10.4.2 代码分析 483
10.5 RAS应用实例--远程文件共享 505
10.6 小结 509
第11章 语音电话通信协议及高级编程 510
11.1 Modem通信协议 510
11.1.1 Modem状态 510
11.1.2 AT命令 511
11.1.3 S寄存器 526
11.1.4 Modem返回信息码 529
11.2 语音电话高级编程 529
11.3 小结 537
第12章 串口通信高级编程 538
12.1 串口通信硬件理论 538
12.2 Windows串口通信编程 542
12.2.1 打开和关闭串口 543
12.2.2 串口配置和串口属性 545
12.2.3 读写串口 556
12.2.4 通信事件 558
12.2.5 设备控制命令 560
12.3 串口数据传输高级编程 561
12.3.1 代码分析 562
12.3.2 CSerialCommHelper类 562
12.4 小结 570
附录一 Winsock 1.1函数参考 571
附录二 Winsock 2 函数参考 590
附录三 Windows Sockets错误码 600