Windows网络编程实践 / 网络空间安全学科系列教材
¥59.00定价
作者: 刘琰
出版时间:2025-07-01
出版社:机械工业出版社
河南省“十四五”普通高等教育规划教材
- 机械工业出版社
- 9787111767534
- 1-1
- 550374
- 平装
- 2025-07-01
- 434
内容简介
本书旨在训练和强化学生的Windows网络编程能力,既设计了前后贯通的延续性单元实践项目,又设计了由浅入深的可扩展专题实践项目。主要内容包括:网络应用程序运行分析、Windows Sockets网络编程基础、基于流式套接字的网络编程、基于数据报套接字的网络编程、基于原始套接字的网络编程、网络I/O模型的应用、Npcap编程和加密通信编程。通过本书的学习,读者可以深入实践Windows网络编程的基本方法,系统掌握网络数据处理的原理和技术。
目录
目 录
前言
教学和阅读建议
第1章 网络应用程序运行分析1
1.1 实验目的1
1.2 网络流量捕获工具1
1.2.1 Wireshark简介2
1.2.2 Wireshark的安装和卸载2
1.2.3 Wireshark的用户界面13
1.2.4 使用Wireshark进行数据包
捕获26
1.2.5 使用过滤器28
1.2.6 处理捕获的数据包33
1.3 网络状态显示工具42
1.3.1 Netstat命令42
1.3.2 Netstat命令的参数42
1.4 Ping程序执行过程分析43
1.4.1 实验要求43
1.4.2 实验内容43
1.4.3 实验过程示例43
1.4.4 实验总结与思考45
1.5 网页用户登录过程分析45
1.5.1 实验要求45
1.5.2 实验内容46
1.5.3 实验过程示例46
1.5.4 实验总结与思考51
第2章 Windows Sockets编程基础52
2.1 实验目的52
2.2 Windows Sockets52
2.2.1 Windows Sockets规范52
2.2.2 Windows Sockets的版本53
2.2.3 Windows Sockets的组成55
2.3 Windows Sockets编程接口56
2.3.1 Windows Sockets API56
2.3.2 Windows Sockets DLL的
初始化和释放59
2.4 获取主机的IP地址60
2.4.1 实验要求60
2.4.2 实验内容60
2.4.3 实验过程示例60
2.4.4 实验总结与思考65
第3章 基于流式套接字的网络编程66
3.1 实验目的66
3.2 流式套接字编程要点66
3.2.1 TCP简介67
3.2.2 流式套接字的通信过程67
3.2.3 流式套接字的编程模型68
3.3 基于流式套接字的时间同步服务器
设计70
3.3.1 实验要求70
3.3.2 实验内容70
3.3.3 实验过程示例71
3.3.4 实验总结与思考75
3.4 基于流式套接字的网络功能框架设计75
3.4.1 实验要求76
3.4.2 实验内容76
3.4.3 实验过程示例76
3.4.4 实验总结与思考83
3.5 基于流式套接字的回射服务器程序
设计83
3.5.1 实验要求84
3.5.2 实验内容84
3.5.3 实验过程示例85
3.5.4 实验总结与思考90
3.6 基于流式套接字的并发服务器设计91
3.6.1 实验要求91
3.6.2 多线程编程要点91
3.6.3 实验内容99
3.6.4 实验过程示例99
3.6.5 实验总结与思考105
3.7 回射服务器程序运行过程分析105
3.7.1 实验要求105
3.7.2 实验内容106
3.7.3 实验过程示例106
3.7.4 实验总结与思考118
3.8 提高流式套接字网络程序对流数据
的接收能力118
3.8.1 实验要求119
3.8.2 实验内容119
3.8.3 实验过程示例120
3.8.4 实验总结与思考129
3.9 提高流式套接字网络程序的传输
效率130
3.9.1 实验要求130
3.9.2 实验内容130
3.9.3 实验过程示例132
3.9.4 实验总结与思考142
第4章 基于数据报套接字的网络编程143
4.1 实验目的143
4.2 数据报套接字编程的要点143
4.2.1 UDP简介144
4.2.2 数据报套接字的通信过程144
4.2.3 数据报套接字编程模型145
4.3 基于数据报套接字的网络功能框架
设计146
4.3.1 实验要求146
4.3.2 实验内容147
4.3.3 实验过程示例147
4.3.4 实验总结与思考151
4.4 基于数据报套接字的回射服务器
程序设计151
4.4.1 实验要求151
4.4.2 实验内容151
4.4.3 实验过程示例152
4.4.4 实验总结与思考156
4.5 无连接应用程序丢包率测试156
4.5.1 实验要求156
4.5.2 实验内容157
4.5.3 实验过程示例158
4.5.4 实验总结与思考164
第5章 基于原始套接字的网络编程165
5.1 实验目的165
5.2 原始套接字编程的要点165
5.3 基于原始套接字的网络功能框架
设计167
5.3.1 实验要求167
5.3.2 实验内容167
5.3.3 实验过程示例168
5.3.4 实验总结与思考173
5.4 基于原始套接字的回射客户端程序
设计173
5.4.1 实验要求173
5.4.2 实验内容173
5.4.3 实验过程示例174
5.4.4 实验总结与思考181
5.5 traceroute程序设计181
5.5.1 实验要求181
5.5.2 实验内容181
5.5.3 实验过程示例182
5.5.4 实验总结与思考188
第6章 网络I/O模型的应用189
6.1 实验目的189
6.2 套接字的I/O模式和I/O模型189
6.2.1 网络中的I/O操作189
6.2.2 套接字的I/O模型190
6.3 基于I/O复用模型的回射服务器
程序设计192
6.3.1 实验要求192
6.3.2 实验内容193
6.3.3 实验过程示例194
6.3.4 实验总结与思考199
6.4 基于WSAAsyncSelect模型的文字
聊天软件设计199
6.4.1 实验要求199
6.4.2 实验内容200
6.4.3 实验过程示例201
6.4.4 实验总结与思考207
6.5 基于完成端口模型的代理服务器
设计207
6.5.1 实验要求208
6.5.2 实验内容208
6.5.3 实验过程示例210
6.5.4 实验总结与思考227
第7章 Npcap编程228
7.1 实验目的228
7.2 Npcap的体系结构228
7.2.1 网络组包过滤模块229
7.2.2 Npcap编程接口230
7.3 ARP欺骗程序设计231
7.3.1 实验要求231
7.3.2 实验内容231
7.3.3 实验过程示例235
7.3.4 实验总结与思考243
7.4 用户级网桥程序设计243
7.4.1 实验要求243
7.4.2 实验内容244
7.4.3 实验过程示例248
7.4.4 实验总结与思考256
第8章 加密通信编程257
8.1 实验目的257
8.2 基于流式套接字的加密通信系统的
设计257
8.2.1 实验要求257
8.2.2 实验内容258
8.2.3 实验过程示例259
8.2.4 实验总结与思考279
附录 Windows Sockets的错误码280
前言
教学和阅读建议
第1章 网络应用程序运行分析1
1.1 实验目的1
1.2 网络流量捕获工具1
1.2.1 Wireshark简介2
1.2.2 Wireshark的安装和卸载2
1.2.3 Wireshark的用户界面13
1.2.4 使用Wireshark进行数据包
捕获26
1.2.5 使用过滤器28
1.2.6 处理捕获的数据包33
1.3 网络状态显示工具42
1.3.1 Netstat命令42
1.3.2 Netstat命令的参数42
1.4 Ping程序执行过程分析43
1.4.1 实验要求43
1.4.2 实验内容43
1.4.3 实验过程示例43
1.4.4 实验总结与思考45
1.5 网页用户登录过程分析45
1.5.1 实验要求45
1.5.2 实验内容46
1.5.3 实验过程示例46
1.5.4 实验总结与思考51
第2章 Windows Sockets编程基础52
2.1 实验目的52
2.2 Windows Sockets52
2.2.1 Windows Sockets规范52
2.2.2 Windows Sockets的版本53
2.2.3 Windows Sockets的组成55
2.3 Windows Sockets编程接口56
2.3.1 Windows Sockets API56
2.3.2 Windows Sockets DLL的
初始化和释放59
2.4 获取主机的IP地址60
2.4.1 实验要求60
2.4.2 实验内容60
2.4.3 实验过程示例60
2.4.4 实验总结与思考65
第3章 基于流式套接字的网络编程66
3.1 实验目的66
3.2 流式套接字编程要点66
3.2.1 TCP简介67
3.2.2 流式套接字的通信过程67
3.2.3 流式套接字的编程模型68
3.3 基于流式套接字的时间同步服务器
设计70
3.3.1 实验要求70
3.3.2 实验内容70
3.3.3 实验过程示例71
3.3.4 实验总结与思考75
3.4 基于流式套接字的网络功能框架设计75
3.4.1 实验要求76
3.4.2 实验内容76
3.4.3 实验过程示例76
3.4.4 实验总结与思考83
3.5 基于流式套接字的回射服务器程序
设计83
3.5.1 实验要求84
3.5.2 实验内容84
3.5.3 实验过程示例85
3.5.4 实验总结与思考90
3.6 基于流式套接字的并发服务器设计91
3.6.1 实验要求91
3.6.2 多线程编程要点91
3.6.3 实验内容99
3.6.4 实验过程示例99
3.6.5 实验总结与思考105
3.7 回射服务器程序运行过程分析105
3.7.1 实验要求105
3.7.2 实验内容106
3.7.3 实验过程示例106
3.7.4 实验总结与思考118
3.8 提高流式套接字网络程序对流数据
的接收能力118
3.8.1 实验要求119
3.8.2 实验内容119
3.8.3 实验过程示例120
3.8.4 实验总结与思考129
3.9 提高流式套接字网络程序的传输
效率130
3.9.1 实验要求130
3.9.2 实验内容130
3.9.3 实验过程示例132
3.9.4 实验总结与思考142
第4章 基于数据报套接字的网络编程143
4.1 实验目的143
4.2 数据报套接字编程的要点143
4.2.1 UDP简介144
4.2.2 数据报套接字的通信过程144
4.2.3 数据报套接字编程模型145
4.3 基于数据报套接字的网络功能框架
设计146
4.3.1 实验要求146
4.3.2 实验内容147
4.3.3 实验过程示例147
4.3.4 实验总结与思考151
4.4 基于数据报套接字的回射服务器
程序设计151
4.4.1 实验要求151
4.4.2 实验内容151
4.4.3 实验过程示例152
4.4.4 实验总结与思考156
4.5 无连接应用程序丢包率测试156
4.5.1 实验要求156
4.5.2 实验内容157
4.5.3 实验过程示例158
4.5.4 实验总结与思考164
第5章 基于原始套接字的网络编程165
5.1 实验目的165
5.2 原始套接字编程的要点165
5.3 基于原始套接字的网络功能框架
设计167
5.3.1 实验要求167
5.3.2 实验内容167
5.3.3 实验过程示例168
5.3.4 实验总结与思考173
5.4 基于原始套接字的回射客户端程序
设计173
5.4.1 实验要求173
5.4.2 实验内容173
5.4.3 实验过程示例174
5.4.4 实验总结与思考181
5.5 traceroute程序设计181
5.5.1 实验要求181
5.5.2 实验内容181
5.5.3 实验过程示例182
5.5.4 实验总结与思考188
第6章 网络I/O模型的应用189
6.1 实验目的189
6.2 套接字的I/O模式和I/O模型189
6.2.1 网络中的I/O操作189
6.2.2 套接字的I/O模型190
6.3 基于I/O复用模型的回射服务器
程序设计192
6.3.1 实验要求192
6.3.2 实验内容193
6.3.3 实验过程示例194
6.3.4 实验总结与思考199
6.4 基于WSAAsyncSelect模型的文字
聊天软件设计199
6.4.1 实验要求199
6.4.2 实验内容200
6.4.3 实验过程示例201
6.4.4 实验总结与思考207
6.5 基于完成端口模型的代理服务器
设计207
6.5.1 实验要求208
6.5.2 实验内容208
6.5.3 实验过程示例210
6.5.4 实验总结与思考227
第7章 Npcap编程228
7.1 实验目的228
7.2 Npcap的体系结构228
7.2.1 网络组包过滤模块229
7.2.2 Npcap编程接口230
7.3 ARP欺骗程序设计231
7.3.1 实验要求231
7.3.2 实验内容231
7.3.3 实验过程示例235
7.3.4 实验总结与思考243
7.4 用户级网桥程序设计243
7.4.1 实验要求243
7.4.2 实验内容244
7.4.3 实验过程示例248
7.4.4 实验总结与思考256
第8章 加密通信编程257
8.1 实验目的257
8.2 基于流式套接字的加密通信系统的
设计257
8.2.1 实验要求257
8.2.2 实验内容258
8.2.3 实验过程示例259
8.2.4 实验总结与思考279
附录 Windows Sockets的错误码280