Windows网络编程
作者 : 刘琰,王清贤,刘龙,陈熹
出版日期 : 2013-12-02
ISBN : 978-7-111-44196-0
定价 : 39.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 281
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书较为全面和系统地介绍了网络编程的基本原理,剖析了网络应用程序实现与套接字实现和协议实现之间的关联,重点阐述了Windows Sockets编程和WinPcap编程的主要思想、程序设计方法以及开发技巧和可能的陷阱,分析了不同编程方法的适用性和优缺点。
本书系统性较强,内容丰富、结构清晰、论述严谨,既突出基本原理和技术思想,也强调工程实践,适于作为网络工程、信息安全、计算机应用、计算机软件、通信工程等专业的本科生教材,也可供从事网络工程、网络应用开发和网络安全等工作的技术人员参考。

图书特色

网络编程课程涉及的知识面广、编程方法多,如果每种方法都讲授,也不能起到好的学习效果。一方面,每种编程方法使用的开发环境不同、函数库不同,学生在短时间内难以掌握;另一方面,网络编程的核心在于程序设计思路和传输过程中关键问题的解决,在课时有限的情况下过于关注函数使用,便无法透彻地将这些核心思想传授给学生。本书在解决上述问题方面做了有益的探讨。
本书面向网络编程的初学者,从网络编程所涉及的协议基础入手,结合程序运行环境、传输可靠性和传输性能需求等,采用Visual Studio C++作为实验环境,由浅入深地介绍了Windows系统中常用的Windows Sockets编程和WinPcap编程的基本原理和方法,澄清了网络程序与协议软件接口和协议实现之间的关系,剖析了网络应用程序在可靠性维护、传输性能提高、并发处理和原始数据构造等方面的编程要点。

本书特点:
以问题为导向,由浅入深,辅以前后贯穿的范例实验,力求将编程方法的适用场合分析透彻,将网络编程的原理解释清楚,对网络通信中遇到瓶颈问题优化改进。
配有针对性强、简洁易懂的例题及类型丰富、特色鲜明的习题,并给出了全部习题答案,使学生了解整个编程思路,熟悉编程技巧,进而快速提高编程能力。
针对各章内容给出了课后习题和解答、PPT课件、使用Visual Studio 2008开发的Visual C++应用程序源代码等辅助教学资源,有需要者可登录华章网站(www.hzbook.com)下载。

图书前言

在信息化高度发展的今天,网络应用层出不穷,技术日新月异。越来越多的应用运行在网络环境下,这就要求程序员能够在最普及的Windows操作系统上开发网络应用程序。目前,国内大批专门从事网络技术开发与技术服务的研究机构和高科技企业需要网络基础扎实、编程技术精湛的专业技术人才。作为计算机网络课程体系的重要组成部分,网络编程相关课程已在国内各大高校开设。
  本书详细地介绍了网络编程的基本原理,剖析了网络应用程序实现与套接字实现和协议实现之间的关联,重点阐述了Windows Sockets编程和WinPcap编程的主要思想和程序设计方法,分析了不同编程方法的适用性和优缺点。通过本书内容的学习,读者可以熟悉Windows系统中网络编程的基本方法,系统掌握网络数据处理的原理和技术,提高网络实践能力,为将来从事网络技术研究、网络应用程序开发和网络管理等工作打下坚实的基础。
  本书着眼于基本技能的训练和强化,以问题为牵引,由浅入深,辅以前后贯穿的范例实验,力求将编程方法的适用场合分析透彻,将网络编程的原理解释清楚,将网络通信中遇到的瓶颈问题优化改进。本书共分9章和1个附录。第1~3章阐述网络编程所涉及的相关基础知识,包括分布式网络应用程序的结构、TCP/IP协议基础、网络程序通信模型和网络数据的内容与形态等;第4~7章重点介绍Windows Sockets编程的基本方法,包括协议软件接口、套接字的基本概念,Windows Sockets中流式套接字、数据报套接字和原始套接字三种基本套接字的适用场合、通信功能、处理细节和优化策略等;第8章比较详尽地讲解了Windows系统中常用的7种I/O模型的基本概念、相关函数、编程框架和应用场合;第9章重点阐述了基于WinPcap的网络数据构造、捕获、过滤和分析技术;附录部分给出了Windows Sockets错误码和错误原因。
  为了方便读者阅读和学习,编者根据本书内容另外提供了课后习题和解答、PPT课件、使用Visual Studio 2008开发的Visual C++应用程序源代码等辅助教学资源。读者可以登录机械工业出版社华章分社网站(http://www.hzbook.com/)免费下载。
  本书由解放军信息工程大学网络空间安全学院组织编写,刘琰完成了本书全部章节的撰写和示例代码编码,王清贤教授参与部分章节的编写并审校全书,刘龙和陈熹完成了本书习题和教学资源的制作和整理。
  本书是编者根据多年开发网络应用程序和研究相关课程教学的经验,并在多次编写的内部交流讲义的基础上修改而成的。由于网络技术的快速发展,加之作者水平有限,疏漏和错误之处在所难免,恳请读者和有关专家不吝赐教。

编者
2013年6月

上架指导

计算机\网络

封底文字

网络编程课程涉及的知识面很广,编程方法诸多。如果将每种方法都面面俱到,不一定会起到好的学习效果。一方面,每种编程方法使用的开发环境不同、函数库不同,使得学生短时间内难以掌握;另一方面,网络编程的核心在于程序设计思路和传输过程中关键问题的解决,在课时有限的情况下过于关注函数使用,无法透彻地将这些核心思想传授给学生。
本书面向网络编程的初学者,从网络编程所涉及的协议基础入手,结合程序运行环境、传输可靠性和传输性能需求等,采用Visual Studio C++作为实验环境,由浅入深地介绍了Windows系统中常用的Windows Sockets编程和WinPcap编程的基本原理和方法,澄清了网络程序与协议软件接口和协议实现之间的关系,剖析了网络应用程序在可靠性维护、传输性能提高、并发处理和原始数据构造等方面的编程要点。
本书特点:
● 以问题为导向,由浅入深,辅以前后贯穿的范例实验,力求将编程方法的适用场合分析透彻,将网络编程的原理解释清楚,将网络通信中遇到瓶颈问题优化改进。
● 配有针对性强、简洁易懂的例题及类型丰富、特色鲜明的习题,并给出了全部习题答案,使学生能了解整个编程思路,熟悉编程技巧,进而快速提高编程能力。
● 针对各章内容给出了课后习题和解答、PPT课件、使用Visual Studio 2008开发的Visual C++应用程序源代码等辅助教学资源,有需要者可登录华章网站(www.hzbook.com)下载。




加配套的“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 面向原始帧的网络编程方法 8
习题 9
第2章 网络程序通信模型 10
2.1 网络应用软件与网络通信之间的关系 10
2.2 会聚点问题 11
2.3 客户/服务器模型 12
2.3.1 基本概念 12
2.3.2 客户/服务器关系 13
2.3.3 服务器软件的特点与分类 14
2.3.4 客户/服务器模型的优缺点 17
2.4 浏览器/服务器模型 18
2.4.1 基本概念 18
2.4.2 浏览器/服务器工作的一般过程 18
2.4.3 浏览器/服务器模型的优缺点 18
2.5 P2P模型 19
2.5.1 P2P的基本概念 19
2.5.2 P2P网络的拓扑结构 20
习题 21
实验 21
第3章 网络数据的内容与形态 22
3.1 整数的长度与符号 22
3.1.1 整数的长度 22
3.1.2 整数的符号 23
3.2 字节顺序 23
3.3 结构的对齐与填充 25
3.4 网络数据传输形态 27
3.5 字符编码 28
3.5.1 字符集传输编码标准 29
3.5.2 文本化传输编码标准 30
3.6 数据校验 32
习题 33
第4章  协议软件接口 34
4.1 TCP/IP协议软件接口 34
4.1.1 协议软件接口的位置 34
4.1.2 协议软件接口的功能 35
4.2 网络通信的基本方法 36
4.2.1 如何访问TCP/IP协议 36
4.2.2 UNIX中的基本I/O功能 36
4.2.3 实现网间进程通信必须解决的问题 36
4.3 套接字 37
4.3.1 套接字编程接口的起源与发展 37
4.3.2 套接字的抽象概念 37
4.3.3 套接字接口层的位置与内容 38
4.3.4 套接字通信 40
4.4 Windows套接字 40
4.4.1 Windows Sockets规范 40
4.4.2 Windows Sockets的版本 41
4.4.3 Windows Sockets的组成 43
4.5 WinSock编程接口 43
4.5.1 WinSock API 43
4.5.2 Windows Sockets DLL的初始化和释放 46
4.5.3 WinSock的地址描述 48
4.5.4 套接字选项和I/O控制命令 51
4.5.5 处理WinSock的错误 54
习题 55
实验 55
第5章 流式套接字编程 56
5.1 TCP:传输控制协议要点 56
5.1.1 TCP协议的传输特点 56
5.1.2 TCP的首部 57
5.1.3 TCP连接的建立与终止 58
5.2 流式套接字编程模型 60
5.2.1 流式套接字编程的适用场合 61
5.2.2 流式套接字的通信过程 61
5.2.3 流式套接字编程的交互模型 62
5.2.4 流式套接字服务器的工作原理 63
5.3 基本函数与操作 64
5.3.1 创建和关闭套接字 64
5.3.2 指定地址 65
5.3.3 连接套接字 67
5.3.4 数据传输 69
5.4 编程举例 70
5.4.1 基于流式套接字的回射客户端编程操作 71
5.4.2 基于流式套接字的回射服务器端编程操作 76
5.5 TCP的流传输控制 81
5.5.1 TCP的流传输特点 82
5.5.2 使用TCP进行数据发送和接收过程中的缓存现象 83
5.5.3 正确处理流数据的接收 86
5.5.4 接收定长和变长数据 87
5.6 面向连接程序的可靠性保护 91
5.6.1 发送成功不等于发送有效 91
5.6.2 正确处理TCP的失败模式 94
5.6.3 检测无即时通知的死连接 99
5.6.4 顺序释放连接 101
5.7 提高面向连接程序的传输效率 105
5.7.1 避免TCP传输控制对性能的影响 105
5.7.2 设置合适的缓冲区大小 109
习题 110
实验 111
第6章 数据报套接字编程 112
6.1 UDP:用户数据报协议要点 112
6.1.1 使用TCP传输数据有什么缺点 112
6.1.2 UDP协议的传输特点 113
6.1.3 UDP的首部 113
6.2 数据报套接字编程模型 114
6.2.1 数据报套接字编程的适用场合 114
6.2.2 数据报套接字的通信过程 115
6.2.3 数据报套接字编程的交互模型 115
6.2.4 数据报套接字服务器的工作原理 116
6.2.5 数据报套接字的使用模式 117
6.3 基本函数与操作 119
6.3.1 创建和关闭套接字 119
6.3.2 指定地址 119
6.3.3 数据传输 119
6.4 编程举例 120
6.4.1 基于数据报套接字的回射客户端编程操作 120
6.4.2 基于数据报套接字的回射服务器端编程操作 123
6.5 提高无连接程序的可靠性 127
6.5.1 UDP协议的不可靠性问题 127
6.5.2 排除噪声数据 128
6.5.3 增加错误检测功能 129
6.5.4 判断未开放的服务 133
6.5.5 避免流量溢出 133
6.6 无连接服务器的并发性处理 134
6.6.1 循环无连接服务器 134
6.6.2 并发无连接服务器 134
习题 136
实验 136
第7章 原始套接字编程 137
7.1 原始套接字的功能 137
7.2 原始套接字编程模型 138
7.2.1 原始套接字编程的适用场合 138
7.2.2 原始套接字的通信过程 139
7.3 原始套接字的创建、输入与输出 140
7.3.1 创建原始套接字 140
7.3.2 使用原始套接字接收数据 141
7.3.3 使用原始套接字发送数据 144
7.4 编程举例 145
7.4.1 使用原始套接字实现ping 145
7.4.2 使用原始套接字实现数据包捕获 151
7.5 Windows对原始套接字的限制 154
习题 155
实验 155
第8章 网络通信中的I/O操作 156
8.1 I/O设备与I/O操作 156
8.1.1 I/O设备 156
8.1.2 网络通信中的I/O等待 157
8.1.3 套接字的I/O模式 158
8.2 阻塞I/O模型 159
8.2.1 阻塞I/O模型的编程框架 159
8.2.2 阻塞I/O模型评价 162
8.3 非阻塞I/O模型 162
8.3.1 非阻塞I/O模型的相关函数 162
8.3.2 非阻塞I/O模型的编程框架 163
8.3.3 非阻塞I/O模型评价 166
8.4 I/O复用模型 167
8.4.1 I/O复用模型的相关函数 167
8.4.2 I/O复用模型的编程框架 168
8.4.3 I/O复用模型评价 172
8.5 基于消息的WSAAsyncSelect模型 173
8.5.1 Windows的消息机制与使用 173
8.5.2 WSAAsyncSelect模型的相关函数 180
8.5.3 WSAAsyncSelect模型的编程框架 181
8.5.4 WSAAsyncSelect模型评价 191
8.6 基于事件的WSAEventSelect模型 191
8.6.1 Windows的事件机制与使用 191
8.6.2 WSAEventSelect模型的相关函数 192
8.6.3 WSAEventSelect模型的编程框架 194
8.6.4 WSAEventSelect模型评价 199
8.7 重叠I/O模型 199
8.7.1 重叠I/O的概念 199
8.7.2 重叠I/O模型的相关函数 200
8.7.3 重叠I/O模型的编程框架 203
8.7.4 重叠I/O模型评价 212
8.8 完成端口模型 212
8.8.1 完成端口的相关概念 213
8.8.2 完成端口模型的相关函数 214
8.8.3 完成端口模型的编程框架 216
8.8.4 完成端口模型评价 221
习题 221
实验 222
第9章 WinPcap编程 223
9.1 WinPcap概述 223
9.2 WinPcap结构 225
9.2.1 WinPcap的体系结构 225
9.2.2 网络驱动程序接口规范 226
9.2.3 网络组帧过滤模块 228
9.2.4 Packet.dll 230
9.2.5 wpcap.dll 231
9.3 WinPcap编程环境配置 231
9.3.1 下载WinPcap 231
9.3.2 安装WinPcap 232
9.3.3 在Visual Stdio环境下引入WinPcap 233
9.4 wpcap.dll的常用数据结构和函数 235
9.4.1 wpcap.dll的常用数据结构 235
9.4.2 wpcap.dll的常用函数 236
9.4.3 wpcap.dll的工作流程 237
9.5 wpcap.dll编程实例——捕获分析UDP数据 238
9.5.1 第一步:获取设备列表 238
9.5.2 第二步:打开网卡 240
9.5.3 第三步:设置过滤规则 241
9.5.4 第四步:捕获数据帧 243
9.5.5 第五步:分析数据帧 245
9.6 Packet.dll的常用数据结构和函数 250
9.6.1 Packet.dll的常用数据结构 250
9.6.2 Packet.dll的常用函数 251
9.6.3 Packet.dll的工作流程 252
9.7 Packet.dll编程实例——生成网络流量 253
9.7.1 第一步:获取设备列表 253
9.7.2 第二步:打开网卡 254
9.7.3 第三步:填充并初始化PACKET对象 254
9.7.4 第四步:发送数据 256
习题 260
实验 260
附录 Windows Sockets错误码 261
参考文献 268

教学资源推荐
作者: 主编:王瑞民副主编:史国华 李娜参编(按姓氏笔画顺序):杨姣 宋伟 高淼 龚玉猛
作者: 徐鹏 林璟锵 金海 王蔚 王琼霄 著
作者: 何泾沙 主编
参考读物推荐
作者: [美] 斯科特·罗伯茨 (Scott J.Roberts) 利百加·布朗( Rebekah Brown) 著
作者: 诸葛建伟 陈力波 田繁 等著
作者: Julia H.Allen;Sean Barnum;Robert J.Ellison;Gary McGraw;Nancy R.Mead
作者: [美]帕斯卡·阿克曼(Pascal Ackerman)著