新書推薦:
《
深入浅出人工智能
》
售價:NT$
352.0
《
成长的心智——重新思考时代与心灵
》
售價:NT$
449.0
《
外卷:中国互联网巨头的全球征途
》
售價:NT$
653.0
《
家庭心理健康指南:解决孩子成长中的棘手问题
》
售價:NT$
305.0
《
创作经典
》
售價:NT$
653.0
《
西方殖民帝国的崛起(1492 - 1914)
》
售價:NT$
449.0
《
ChatGPT数据分析实践
》
售價:NT$
505.0
《
人格分裂手记
》
售價:NT$
254.0
|
編輯推薦: |
本书全面系统地介绍了网络编程的基本原理。第1~3章阐述网络编程涉及的基础知识,包括网络应用程序基础、网络程序通信模型和网络数据的内容与形态等;第4~7章重点介绍Windows Sockets编程的基本方法,包括协议软件接口,Windows Sockets中的流式套接字、数据报套接字和原始套接字;第8章详细讲解了Windows系统中常用的I/O模型的基本概念、相关函数、编程框架和应用场合;第9章阐述了基于Npcap的网络数据构造、捕获、过滤和分析技术;第10章介绍了网络加密通信的基本过程和使用套接字进行加密操作的编程方法。本书结构清晰、实用性强,既突出基本原理和技术,又强调工程实践,适合作为高校网络空间安全相关专业、计算机相关专业的教材,也适合作为从事网络应用开发、网络安全工作的技术人员的参考书。
|
內容簡介: |
本书全面介绍计算机网络通信程序设计的基本原理,重点阐述Windows Sockets编程和WinPcap编程的主要思想、程序设计方法、开发技巧和可能的陷阱,分析了不同编程方法的适用性和优缺点。
|
關於作者: |
刘琰,信息工程大学四院教授,主要研究方向为网络安全、漏洞挖掘等,发表十余篇高质量学术论文,参与军队、省部级科研项目多项。长期为网络空间安全专业学生讲授“网络攻防”“windows网络编程”“网络安全实践”等课程,多次获得校级教学奖。
|
目錄:
|
目 录
前言
教学和阅读建议
第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
|
內容試閱:
|
前 言
在信息化高度发展的今天,技术日新月异,网络应用层出不穷。越来越多的应用运行在网络环境下,要求程序员能够在广泛使用的Windows操作系统上开发网络应用程序。目前,国内大批专门从事网络技术开发与技术服务的机构和高科技企业需要网络基础扎实、编程技术精湛的专业技术人才。作为计算机网络课程体系的重要组成部分,网络编程相关课程已在国内各大高校开设。
本书着眼于基本技能的训练和强化,以问题为牵引,由浅入深,辅以前后贯穿的范例,力求将编程方法的使用场合分析透彻,将网络编程的原理解释清楚,并让读者能够对网络通信中遇到的瓶颈问题进行优化、改进。本书详细地介绍了网络编程的基本原理,剖析了网络应用程序实现与套接字实现和协议实现之间的关联,重点阐述了Windows Sockets编程和Npcap编程的主要思想和方法,分析了不同编程方法的适用性和优缺点。通过学习本书,读者可以熟悉Windows系统中网络编程的基本方法,系统掌握网络数据处理的原理和技术,提高网络实践能力,为将来从事网络技术研究、网络应用程序开发和网络管理等工作打下坚实的基础。
本书第1版出版于2014年,距今已十年。在这十年中,不仅计算机网络有了长足的发展,而且国内计算机网络相关专业的学生和从业人员的技术水平、编程需求也有了明显变化,因此在第2版中,我们针对原有内容做了大量调整、修改和增删。
全书共有10章和1个附录。第1~3章阐述网络编程涉及的基础知识,包括分布式网络应用程序的结构、TCP/IP基础、网络程序通信模型和网络数据的内容与形态等;第4~7章重点介绍Windows Sockets编程的基本方法,包括协议软件接口,以及Windows Sockets中的流式套接字、数据报套接字和原始套接字(重点介绍这三种基本套接字的使用场合、通信功能、处理细节和优化策略等);第8章详细讲解Windows系统中常用的I/O模型的基本概念、相关函数、编程框架和应用场合;第9章重点阐述基于Npcap的网络数据构造、捕获、过滤和分析技术;第10章介绍网络加密通信的基本过程和使用套接字进行加密操作的编程方法;附录中给出了Windows Sockets错误码和错误描述。
为了方便读者阅读和学习以及教师授课,编者将提供相关的辅助资源,读者可以登录机械工业出版社网站下载相关资源。
本书由中国人民解放军网络空间部队信息工程大学网络空间安全学院组织编写,刘琰教授负责第1~8章的撰写和示例代码,王清贤教授、罗向阳教授、杨春芳副教授参与部分章节的编写并审校全书,杨忠信负责第9章的撰写和示例代码,陈熹负责第10章的撰写和示例代码,杜少勇主要负责书中示例代码的优化和教学资源制作。
本书是编者根据多年来的网络应用程序开发和课程教学经验,在内部讲义的基础上反复修改后编写而成的。由于网络技术发展迅速,限于作者水平,书中疏漏和错误之处在所难免,恳请读者和有关专家不吝赐教。
编 者
2023年7月
|
|