河南省“十四五”普通高等教育规划教材《Windows网络编程(第2版)》: 用丰富实例全面介绍网络编程的原理、方法

文摘   2024-12-24 17:30   北京  
     

在信息化高度发展的今天,技术日新月异,网络应用层出不穷。越来越多的应用运行在网络环境下,要求程序员能够在广泛使用的Windows操作系统上开发网络应用程序。目前,国内大批专门从事网络技术开发与技术服务的机构和高科技企业需要网络基础扎实、编程技术精湛的专业技术人才。作为计算机网络课程体系的重要组成部分,网络编程相关课程已在国内各大高校开设。

但由于网络编程课程涉及的知识面广、编程方法多,如果每种方法都讲授,也不能起到好的学习效果。一方面,每种编程方法使用的开发环境不同、函数库不同,学生在短时间内难以掌握;另一方面,网络编程的核心在于程序设计思路和传输过程中关键问题的解决,在课时有限的情况下过于关注函数使用,便无法透彻地将这些核心思想传授给学生。

2013年底,由中国人民解放军网络空间部队信息工程大学网络空间安全学院组织编写的《Windows网络编程》一书,在解决上述问题方面做了许多有益的探讨,详细地介绍了网络编程的基本原理,剖析了网络应用程序实现与套接字实现和协议实现之间的关联,重点阐述了Windows Sockets编程和WinPcap编程的主要思想和程序设计方法,分析了不同编程方法的适用性和优缺点。该书出版后,受到许多读者的欢迎,不少学校采用为授课教材。

转眼该书出版距今已有十年,在这十年中,不仅计算机网络有了长足的发展,而且国内计算机网络相关专业的学生和从业人员的技术水平、编程需求也有了明显变化,鉴于此,几位作者根据多年来的网络应用程序开发和课程教学经验,更新出版了第2版,针对第1版的原有内容做了大量调整、修改和增删。本书还被荣获河南省“十四五”普通高等教育规划教材。

《Windows网络编程(第2版)》
作者: 刘琰 王清贤

书号: 9787111740513

定价:59.00元


以Windows操作系统为平台,全面介绍

网络编程的原理、方法,并给出丰富的实例

新版着眼于基本技能的训练和强化,以问题为牵引,由浅入深,辅以前后贯穿的范例,力求将编程方法的使用场合分析透彻,将网络编程的原理解释清楚,并让读者能够对网络通信中遇到的瓶颈问题进行优化、改进。

主要内容 

本书全面系统地介绍了网络编程的基本原理。第1~3章阐述网络编程涉及的基础知识,包括网络应用程序基础、网络程序通信模型和网络数据的内容与形态等;第4~7章重点介绍Windows Sockets编程的基本方法,包括协议软件接口,Windows Sockets中的流式套接字、数据报套接字和原始套接字;第8章详细讲解了Windows系统中常用的I/O模型的基本概念、相关函数、编程框架和应用场合;第9章阐述了基于Npcap的网络数据构造、捕获、过滤和分析技术;第10章介绍了网络加密通信的基本过程和使用套接字进行加密操作的编程方法。本书结构清晰、实用性强,既突出基本原理和技术,又强调工程实践,适合作为高校网络空间安全相关专业、计算机相关专业的教材,也适合作为从事网络应用开发、网络安全工作的技术人员的参考书。




第2版特色


  • 突出网络编程的基本原理,剖析网络应用程序实现与套接字实现、协议实现之间的关联,重点介绍Windows Sockets编程和Npcap编程的主要思想和方法,分析不同编程方法的适用性和优缺点。

  • 以问题为牵引,通过前后贯穿的范例,由浅入深地分析网络编程的原理、方法和使用场合,并介绍优化和改进网络通信瓶颈的技术。

  • 面向初学者,帮助读者系统掌握网络编程的方法、网络数据处理的原理和技术,从而提高网络实践能力,为将来从事网络技术研究、网络应用开发以及网络管理相关工作打下坚实基础。


主要作者介绍

刘琰

信息工程大学教授,博士生导师。主要从事网络数据智能分析方向的科研和高层次人才培养;主持国家自然科学基金、国家重点研发计划子课题和河南省自然科学面上项目等科研项目10余项;在国内外学术期刊和会议上发表论文70余篇,出版专著6部,授权专利17项,获得软件著作权3项;获军队省部级科技进步一等奖1项、二等奖 2项、三等奖3项;获全国职业院校技能大赛教学能力比赛一等奖、二等奖各1项、省部级教学成果一等奖2项、河南省自然科学优秀学术著作奖一等奖2项、二等奖1项。主要讲授“网络编程技术”“网络资源测绘”“网络数据分析与应用”等课程。


王清贤

博士生导师,郑州大学特聘教授,原信息工程大学网络空间安全学院教授。全国优秀教师,全国网络安全优秀人才,河南省网络安全和信息化工作咨询专家,兼任中国密码学会安全协议专业委员会委员、河南省计算机学会副理事长等。著名网络安全专家,长期从事网络空间安全领域教学与研究工作,是我国网络安全人才培养的开拓者。获国家级教学成果二等奖1项,省部级教学成果一等奖2项,省部级科技进步一、二等奖10项,出版专著、教材10余部。

编辑推荐

本书强调技能训练,在授课内容上注重知识的实用性和连贯性,结构清晰、实用性强,既突出基本原理和技术,又强调工程实践,适合作为高校网络空间安全相关专业、计算机相关专业的教材,也适合作为从事网络应用开发、网络安全工作的技术人员的参考书。


通过学习本书,读者可以熟悉Windows系统中网络编程的基本方法,系统掌握网络数据处理的原理和技术,提高网络实践能力,为将来从事网络技术研究、网络应用程序开发和网络管理等工作打下坚实的基础



第2版


目录

上下滑动查看

前言

教学和阅读建议


第1章 网络应用程序设计基础 1

1.1 计算机网络基础 1

1.1.1 协议层次和服务模型 1

1.1.2 网络程序的寻址方式 4

1.2 分布式网络应用程序 6

1.3 网络编程方法概览 7

1.3.1 面向应用的网络编程方法 7

1.3.2 基于TCP/IP协议栈的网络

编程方法 8

1.3.3 面向原始帧的网络编程方法 9

习题 10

第2章 网络程序通信模型 11

2.1 网络应用程序与网络通信之间的

关系 11

2.2 会聚点问题 12

2.3 客户/服务器模型 13

2.3.1 基本概念 13

2.3.2 客户与服务器的关系 14

2.3.3 服务器软件的特点与分类 16

2.3.4 客户/服务器模型的优缺点 18

2.4 浏览器/服务器模型 19

2.4.1 基本概念 19

2.4.2 浏览器/服务器模型的工作

过程 19

2.4.3 浏览器/服务器模型的

优缺点 20

2.5 P2P模型 20

2.5.1 基本概念 20

2.5.2 P2P网络的拓扑结构 21

习题 23

实验 23

第3章 网络数据的内容与形态 24

3.1 整数的长度与符号 24

3.1.1 整数的长度 24

3.1.2 整数的符号 25

3.2 字节顺序 25

3.3 结构的对齐与填充 27

3.4 网络数据传输的形态 30

3.5 字符编码 30

3.5.1 字符集传输编码标准 31

3.5.2 文本化传输编码标准 32

3.6 数据校验 34

习题 35

第4章 协议软件接口 37

4.1 TCP/IP协议软件接口 37

4.1.1 协议软件接口的位置 37

4.1.2 协议软件接口的功能 37

4.2 网络通信的基本方法 38

4.2.1 如何访问TCP/IP 38

4.2.2 UNIX中的基本I/O功能 39

4.2.3 实现网间进程通信必须解决的问题 39

4.3 套接字 40

4.3.1 套接字编程接口的起源与

发展 40

4.3.2 套接字的抽象概念 40

4.3.3 套接字接口层的位置与内容 41

4.3.4 套接字通信 43

4.4 Windows套接字 43

4.4.1 Windows Sockets规范 43

4.4.2 Windows Sockets的版本 44

4.4.3 Windows Sockets的组成 46

4.5 WinSock编程接口 46

4.5.1 WinSock API 46

4.5.2 Windows Sockets DLL的

初始化和释放 49

4.5.3 WinSock的地址描述 51

4.5.4 套接字选项和I/O控制命令 54

4.5.5 处理WinSock的错误 58

习题 58

实验 58

第5章 流式套接字编程 59

5.1 TCP:传输控制协议的要点 59

5.1.1 TCP的传输特点 59

5.1.2 TCP的首部 60

5.1.3 TCP连接的建立与终止 61

5.2 流式套接字编程模型 64

5.2.1 流式套接字编程的适用

场合 64

5.2.2 流式套接字的通信过程 64

5.2.3 流式套接字编程的交互

模型 65

5.2.4 流式套接字服务器的工作

原理 66

5.3 基本函数与操作 67

5.3.1 创建和关闭套接字 67

5.3.2 指定地址 69

5.3.3 连接套接字 71

5.3.4 数据传输 73

5.4 编程示例 74

5.4.1 基于流式套接字的回射客户端

编程操作 74

5.4.2 基于流式套接字的回射服务器

端编程操作 80

5.5 TCP的流传输控制 86

5.5.1 TCP的流传输特点 86

5.5.2 使用TCP发送和接收数据时的缓存 87

5.5.3 正确处理流数据的接收 90

5.5.4 接收定长和变长数据 91

5.6 面向连接程序的可靠性保护 96

5.6.1 发送成功不等于发送有效 96

5.6.2 正确处理TCP的失败模式 99

5.6.3 检测无即时通知的死连接 104

5.6.4 顺序释放连接 106

5.7 提高面向连接程序的传输效率 110

5.7.1 避免TCP传输控制对性能的

影响 110

5.7.2 设置合适的缓冲区大小 114

习题 116

实验 116

第6章 数据报套接字编程 117

6.1 UDP:用户数据报协议的要点 117

6.1.1 使用TCP传输数据的缺点 117

6.1.2 UDP的传输特点 118

6.1.3 UDP的首部 118

6.2 数据报套接字编程模型 119

6.2.1 数据报套接字编程的适用

场合 119

6.2.2 数据报套接字的通信过程 120

6.2.3 数据报套接字编程的交互

模型 120

6.2.4 数据报套接字服务器的工作

原理 121

6.2.5 数据报套接字的使用模式 122

6.3 基本函数与操作 124

6.3.1 创建和关闭套接字 124

6.3.2 指定地址 124

6.3.3 数据传输 124

6.4 编程示例 125

6.4.1 基于数据报套接字的回射

客户端编程操作 126

6.4.2 基于数据报套接字的回射

服务器端编程操作 128

6.5 提高无连接程序的可靠性 132

6.5.1 UDP的不可靠性问题 132

6.5.2 排除噪声数据 133

6.5.3 增加错误检测功能 134

6.5.4 判断未开放的服务 138

6.5.5 避免流量溢出 138

6.6 无连接服务器的并发性处理 139

6.6.1 循环无连接服务器 139

6.6.2 并发无连接服务器 139

习题 141

实验 141

第7章 原始套接字编程 142

7.1 原始套接字的功能 142

7.2 原始套接字编程模型 143

7.2.1 原始套接字编程的适用

场合 143

7.2.2 原始套接字的通信过程 144

7.3 原始套接字的创建、输入与输出 145

7.3.1 创建原始套接字 145

7.3.2 使用原始套接字接收数据 146

7.3.3 使用原始套接字发送数据 149

7.4 编程示例 150

7.4.1 使用原始套接字实现ping 150

7.4.2 使用原始套接字实现数据包

捕获 156

7.5 Windows对原始套接字的限制 160

习题 161

实验 161

第8章 网络通信中的I/O操作 162

8.1 I/O设备与I/O操作 162

8.1.1 I/O设备 162

8.1.2 网络通信中的I/O等待 163

8.1.3 套接字的I/O模式 164

8.2 阻塞I/O模型 165

8.2.1 阻塞I/O模型的编程框架 165

8.2.2 阻塞I/O模型的评价 168

8.3 非阻塞I/O模型 168

8.3.1 非阻塞I/O模型的相关

函数 168

8.3.2 非阻塞I/O模型的编程

框架 169

8.3.3 非阻塞I/O模型的评价 173

8.4 I/O复用模型 173

8.4.1 I/O复用模型的相关函数 173

8.4.2 I/O复用模型的编程框架 174

8.4.3 I/O复用模型的评价 178

8.5 基于消息的WSAAsyncSelect

模型 179

8.5.1 Windows的消息机制与

使用 179

8.5.2 WSAAsyncSelect模型的

相关函数 186

8.5.3 WSAAsyncSelect模型的

编程框架 188

8.5.4 WSAAsyncSelect模型的

评价 198

8.6 基于事件的WSAEventSelect模型 198

8.6.1 Windows的事件机制与

使用 198

8.6.2 WSAEventSelect模型的

相关函数 199

8.6.3 WSAEventSelect模型的

编程框架 202

8.6.4 WSAEventSelect模型的

评价 206

8.7 重叠I/O模型 206

8.7.1 重叠I/O的概念 206

8.7.2 重叠I/O模型的相关函数 207

8.7.3 重叠I/O模型的编程框架 211

8.7.4 重叠I/O模型的评价 220

8.8 完成端口模型 220

8.8.1 完成端口的相关概念 220

8.8.2 完成端口模型的相关函数 222

8.8.3 完成端口模型的编程框架 224

8.8.4 完成端口模型的评价 229

习题 230

实验 230

第9章 Npcap编程 231

9.1 Npcap概述 231

9.2 Npcap的结构 233

9.2.1 Npcap的体系结构 233

9.2.2 网络驱动程序接口规范 234

9.2.3 网络组包过滤模块 236

9.2.4 Packet.dll  239

9.2.5 wpcap.dll 239

9.3 Npcap编程环境的配置 240

9.3.1 下载Npcap 240

9.3.2 安装Npcap 240

9.3.3 在Visual Studio环境下引入Npcap 241

9.4 wpcap.dll的常用数据结构和函数 243

9.4.1 wpcap.dll的常用数据结构 243

9.4.2 wpcap.dll的常用函数 245

9.4.3 wpcap.dll的工作流程 245

9.5 wpcap.dll编程示例—捕获分析

UDP数据 246

9.6 Packet.dll的常用数据结构和函数 258

9.6.1 Packet.dll的常用数据结构 258

9.6.2 Packet.dll的常用函数 260

9.6.3 Packet.dll的工作流程 261

9.7 Packet.dll编程示例—生成网络

流量 262

习题 269

实验 269

第10章 加密通信 270

10.1 常用的安全协议 270

10.1.1 网络层安全协议IPSec 270

10.1.2 传输层安全协议

SSL/TLS 280

10.2 加密通信的基本过程 288

10.2.1 参数协商 289

10.2.2 加密通信 290

10.3 编程示例 291

10.3.1 参数协商过程 291

10.3.2 加密通信过程 311

习题 316

实验 316

附录 Windows Sockets 错误码 317

参考文献 323


欢迎讲授相关课程老师申请样书

有机会免费获得!




温馨提示:点击文中封面可购买,链接仅供参考。


  


撰稿:周睿

                                                      审核:朱劼、姚蕾



计算机系统能力培养
系统能力培养教学经验分享、课程建设、会议与活动
 最新文章