第1章 网络程序设计概述 1
1.1 网络程序的概念 1
1.1.1 定义 1
1.1.2 网络程序的通信结构 1
1.1.3 网络程序设计考虑的主要问题 2
1.2 网络程序设计的一般模型 4
1.2.1 C/S结构模型 5
1.2.2 面向连接的方式 6
1.2.3 面向无连接的方式 6
1.3 安全网络程序设计的概念 6
1.3.1 安全网络程序设计结构 6
1.3.2 数据加密 7
1.3.3 安全协议 8
1.3.4 安全服务 9
1.4 网络程序的开发工具 11
1.4.1 开发工具应具备的基本条件 11
1.4.2 VC++6.0简介 11
1.4.3 其他开发工具介绍 12
小结 12
思考与练习 13
第2章 TCP/IP协议体系 14
2.1 协议分层与OSI参考模型 14
2.1.1 协议分层的概念 14
2.1.2 OSI七层协议模型 14
2.2 TCP/IP协议体系结构 15
2.2.1 层次结构 15
2.2.2 TCP协议 16
2.2.3 UDP协议 17
2.2.4 IP协议 18
2.2.5 端口号 20
2.3 几个实用程序 21
2.3.1 ping 22
2.3.2 ipconfig 22
2.3.3 netstat 23
2.3.4 hostname 23
2.3.5 tracert 23
2.3.6 arp 24
2.3.7 route 24
2.3.8 nbtstat 25
小结 25
思考与练习 26
第3章 网络编程接口 27
3.1 概述 27
3.1.1 什么是接口 27
3.1.2 接口的作用 27
3.1.3 常用接口简介 28
3.2 WinSock接口 28
3.2.1 基本概念 28
3.2.2 WinSock的编程原理 30
3.2.3 基本函数 31
3.2.4 WinSock 2的新特性 32
3.3 MFC网络编程接口 34
3.3.1 概述 34
3.3.2 MFCSocket接口 35
小结 37
思考与练习 38
第4章 面向连接的通信编程 39
4.1 概述 39
4.2 WinSock的启动和终止 41
4.2.1 启动 41
4.2.2 终止 43
4.3 套接字处理 43
4.3.1 创建套接字 43
4.3.2 绑定 44
4.3.3 关闭 46
4.4 建立通信连接 46
4.4.1 侦听 46
4.4.2 接受连接请求 46
4.4.3 请求连接 47
4.5 数据传输 48
4.5.1 发送数据 48
4.5.2 接收数据 49
4.6 点对点通信程序的实现 49
4.6.1 服务器端设计 50
4.6.2 客户端设计 54
4.7 几个设计问题 58
4.7.1 异步通信 60
4.7.2 阻塞与非阻塞 63
4.7.3 字节顺序 64
4.7.4 出错处理 65
小结 66
思考与练习 67
第5章 面向无连接的通信编程 68
5.1 概述 68
5.2 网络广播和多播 68
5.2.1 广播 68
5.2.2 多播 69
5.3 无连接数据传输 71
5.3.1 发送 71
5.3.2 接收 73
5.4 无连接编程应用 75
5.4.1 广播通信程序的实现 75
5.4.2 多播通信程序的实现 83
小结 88
思考与练习 89
第6章 WinSock库函数 90
6.1 概述 90
6.2 WinSock 1.1 92
6.2.1 基本库函数 92
6.2.2 数据库函数 106
6.2.3 专用增设函数 108
6.3 WinSock 2 114
6.3.1 扩展的数据传输函数 114
6.3.2 新增的名字注册与解析函数 130
6.3.3 新增的网络事件函数 136
6.4 库函数调用举例:网络信息查询程序设计 138
小结 140
思考与练习 140
第7章 网络服务器程序设计 141
7.1 概述 141
7.2 MFC中的线程技术 144
7.2.1 创建新线程 144
7.2.2 编写线程函数 145
7.2.3 向线程传递参数 147
7.3 多线程环境的编程 149
7.3.1 线程的基本操作 149
7.3.2 多线程程序设计 153
7.4 网络服务模式 164
7.4.1 串行服务 164
7.4.2 并发服务 166
7.5 网络服务器设计举例 167
7.5.1 支持多线程的聊天服务器实现 167
7.5.2 客户端程序 175
7.5.3 程序分析 180
小结 181
思考与练习 182
第8章 Internet网络应用程序设计 183
8.1 Internet的基本服务 183
8.1.1 Web服务器简介 183
8.1.2 HTTP协议 184
8.1.3 FTP协议 189
8.1.4 电子邮件服务 197
8.2 Web浏览器的开发 202
8.2.1 开发方法 202
8.2.2 设计实例 202
8.3 文件传输应用 206
8.3.1 FTP服务器开发 206
8.3.2 FTP客户端开发 208
8.3.3 FTP设计实例 210
8.4 电子邮件应用 217
8.4.1 基于SMTP的邮件发送编程 217
8.4.2 基于POP3的邮件接收编程 222
小结 224
思考与练习 224
第9章 自定义协议开发与应用 226
9.1 协议工程概述 226
9.1.1 基本术语 226
9.1.2 协议的定义 228
9.1.3 协议的最小描述 229
9.1.4 协议开发的基本过程 229
9.2 自定义协议开发 232
9.2.1 协议设计 232
9.2.2 协议描述 237
9.2.3 协议实现 237
小结 239
思考与练习 239
第10章 原始套接字的应用 240
10.1 基本概念 240
10.1.1 什么是原始套接字 240
10.1.2 创建原始套接字 240
10.2 IP及相关基本协议 241
10.2.1 IP协议 241
10.2.2 ICMP协议 241
10.2.3 IGMP协议 243
10.3 访问ICMP的应用举例:解析ICMP数据报 244
10.4 访问IP的应用举例:解析IP数据报 247
小结 258
思考与练习 258
主要参考文献 259