网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | Windows网络与通信程序设计(第3版) |
分类 | 计算机-操作系统 |
作者 | 陈香凝 等 编 |
出版社 | 人民邮电出版社 |
下载 | ![]() |
简介 | 内容推荐 本书将编程方法、网络协议和应用实例有机结合起来,详细阐明了Windows下网络编程的相关知识,为致力于网络程序设计的读者提供一本注重实际应用的入门到深入的教程。本书首先介绍了Windows平台上进行网络编程的基础知识,包括网络硬件、术语、协议、Winsock编程接口和各种I/O方法等;然后通过具体实例详细讲述了时下流行的高性能可伸缩服务器设计、IP多播和Internet广播、P2P程序设计、原始套节字、SPI、协议驱动的开发和原始以太数据的发送、ARP欺骗技术、LAN和WAN上的扫描和侦测技术、商业级个人防火墙开发等;接下来讲述了新一代网际协议IPv6和Winsock提供的帮助函数;本书结尾部分,对E-mail、Telnet、FTP等协议进行了介绍,给出了一个使用E-mail协议进行多平台同步阅读的实例。本书的内容采用Windows 10操作系统。书中包含了大量可重用的C++类,许多的例子稍做修改即可应用到实际项目开发中。 作者简介 陈香凝,精通VC、C++、Windows编程,特别是对网络的各种通信协议研究很多,有丰富的实践经验,乐于分享,发表过各种论文。 目录 章计算机网络基础1 1.1网络的概念和网络的组成1 1.2计算机网络参考模型2 1.2.1协议层次2 1.2.2TCP/IP参考模型2 1.2.3应用层(Application Layer)3 1.2.4传输层(Transport Layer)3 1.2.5网络层(Network Layer)3 1.2.6链路层(Link Layer)4 1.2.7物理层(Physical Layer)4 1.3网络程序寻址方式4 1.3.1MAC地址4 1.3.2IP地址5 1.3.3子网寻址6 1.3.4端口号8 1.3.5网络地址转换(NAT)8 1.4网络应用程序设计基础10 1.4.1网络程序体系结构10 1.4.2网络程序通信实体11 1.4.3网络程序开发环境11 第2章Winsock编程接口13 2.1Winsock库13 2.1.1Winsock库的装入和释放13 2.1.2封装CInitSock类14 2.2Winsock的寻址方式和字节顺序14 2.2.1Winsock寻址14 2.2.2字节顺序15 2.2.3获取地址信息16 2.3Winsock编程详解19 2.3.1Winsock编程流程19 2.3.2典型过程图22 2.3.3TCP服务器和客户端程序举例23 2.3.4UDP编程25 2.4网络对时程序实例27 2.4.1时间协议(Time Protocol)27 2.4.2TCP/IP实现代码27 第3章Windows套接字I/O模型29 3.1套接字模式29 3.1.1阻塞模式29 3.1.2非阻塞模式29 3.2选择(select)模型30 3.2.1select函数30 3.2.2应用举例31 3.3WSAAsyncSelect模型33 3.3.1消息通知和WSAAsync Select函数34 3.3.2应用举例34 3.4WSAEventSelect模型37 3.4.1WSAEventSelect函数37 3.4.2应用举例38 3.4.3基于WSAEventSelect模型的服务器设计40 3.5重叠(Overlapped)I/O模型48 3.5.1重叠I/O函数48 3.5.2事件通知方式50 3.5.3基于重叠I/O模型的服务器设计51 第4章IOCP与可伸缩网络程序60 4.1完成端口I/O模型60 4.1.1什么是完成端口(completionport)对象60 4.1.2使用IOCP的方法60 4.1.3示例程序62 4.1.4恰当地关闭IOCP64 4.2扩展函数65 4.2.1GetAcceptExSockaddrs函数65 4.2.2TransmitFile函数66 4.2.3TransmitPackets函数67 4.2.4ConnectEx函数67 4.2.5DisconnectEx函数68 4.3可伸缩服务器设计注意事项68 4.3.1内存资源管理68 4.3.2接受连接的方法69 4.3.3恶意客户连接问题69 4.3.4包重新排序问题69 4.4可伸缩服务器系统设计实例70 4.4.1CIOCPServer类的总体结构70 4.4.2数据结构定义和内存池方案73 4.4.3自定义帮助函数76 4.4.4开启服务和停止服务78 4.4.5I/O处理线程82 4.4.6用户接口和测试程序87 第5章互联网广播和IP多播88 5.1套接字选项和I/O控制命令88 5.1.1套接字选项88 5.1.2I/O控制命令90 5.2广播通信91 5.3IP多播(Multicasting)92 5.3.1多播地址92 5.3.2组管理协议(IGMP)93 5.3.3使用IP多播93 5.4基于IP多播的组讨论会实例97 5.4.1定义组讨论会协议98 5.4.2线程通信机制98 5.4.3封装CGroupTalk类98 5.4.4程序界面103 第6章原始套接字106 6.1使用原始套接字106 6.2ICMP编程106 6.2.1ICMP与校验和的计算107 6.2.2Ping程序实例109 6.2.3路由跟踪111 6.3使用IP头包含选项113 6.3.1IP数据报格式113 6.3.2UDP数据报格式115 6.3.3原始UDP封包发送实例117 6.4网络嗅探器开发实例118 6.4.1嗅探器设计原理118 6.4.2网络嗅探器的具体实现119 6.4.3侦听局域网内的密码121 6.5TCP通信开发实例122 6.5.1创建一个原始套接字并设置IP头选项122 6.5.2构造IP头和TCP头123 6.5.3发送原始套接字数据报124 6.5.4接收数据127 第7章Winsock服务提供者接口(SPI)128 7.1SPI概述128 7.2Winsock协议目录129 7.2.1协议特性130 7.2.2使用Winsock API函数枚举协议130 7.2.3使用Winsock SPI函数枚举协议132 7.3分层服务提供者(LSP)133 7.3.1运行原理133 7.3.2安装LSP134 7.3.3移除LSP138 7.3.4编写LSP139 7.3.5LSP实例140 7.4基于SPI的数据报过滤实例144 7.5基于Winsock的网络聊天室开发149 7.5.1服务端149 7.5.2客户端149 7.5.3聊天室程序的设计说明149 7.5.4核心代码分析150 第8章Windows网络驱动接口标准(NDIS)和协议驱动的开发153 8.1核心层网络驱动153 8.1.1Windows 2000及其后产品的网络体系结构153 8.1.2NDIS网络驱动程序154 8.1.3网络驱动开发环境155 8.2WDM驱动开发基础158 8.2.1UNICODE字符串158 8.2.2设备对象158 8.2.3驱动程序的基本结构160 8.2.4I/O请求包(I/O request packet,IRP)和I/O堆栈160 8.2.5完整驱动程序示例163 8.2.6扩展派遣接口165 8.2.7应用举例(进程诊测实例)167 8.3开发NDIS网络驱动预备知识173 8.3.1中断请求级别(Interrupt RequestLevel,IRQL)173 8.3.2旋转锁(Spin Lock)173 8.3.3双链表173 8.3.4封包结构174 8.4NDIS协议驱动175 8.4.1注册协议驱动175 8.4.2打开下层协议驱动的适配器176 8.4.3协议驱动的封包管理177 8.4.4在协议驱动中接收数据178 8.4.5从协议驱动发送封包178 8.5NDIS协议驱动开发实例179 8.5.1总体设计179 8.5.2NDIS协议驱动的初始化、注册和卸载180 8.5.3下层NIC的绑定和解除绑定183 8.5.4发送数据190 8.5.5接收数据191 8.5.6用户IOCTL处理196 第9章网络扫描与检测技术203 9.1网络扫描基础知识203 9.1.1以太网数据帧203 9.1.2ARP204 9.1.3ARP格式206 9.1.4SendARP函数207 9.2原始以太封包的发送207 9.2.1安装协议驱动208 9.2.2协议驱动用户接口208 9.2.3发送以太封包的测试程序213 9.3局域网计算机扫描214 9.3.1管理原始ARP封包214 9.3.2ARP扫描示例217 9.4互联网计算机扫描220 9.4.1端口扫描原理220 9.4.2半开端口扫描实现221 9.5ARP欺骗原理与实现225 9.5.1IP欺骗的用途和实现原理225 9.5.2IP地址冲突226 9.5.3ARP欺骗示例227 0章点对点(P2P)网络通信技术230 10.1NAT穿越概述230 10.2一般概念231 10.2.1NAT术语231 10.2.2中转231 10.2.3反向连接232 10.3UDP打洞232 10.3.1中心服务器232 10.3.2建立点对点会话233 10.3.3公共NAT后面的节点233 10.3.4不同NAT后面的节点234 10.3.5多级NAT后面的节点235 10.3.6UDP空闲超时236 10.4TCP打洞236 10.4.1套接字和TCP端口重用236 10.4.2打开点对点的TCP流237 10.4.3应用程序看到的行为238 10.4.4同步TCP打开238 10.5Internet点对点通信实例239 10.5.1总体设计239 10.5.2定义P2P通信协议239 10.5.3客户方程序240 10.5.4服务器方程序250 10.5.5测试程序253 1章核心层网络封包截获技术256 11.1Windows网络数据和封包过滤概述256 11.1.1Windows网络系统体系结构图256 11.1.2用户模式下的网络数据过滤257 11.1.3内核模式下的网络数据过滤258 11.2中间层网络驱动PassThru258 11.2.1PassThru NDIS中间层驱动简介258 11.2.2编译和安装PassThru驱动259 11.3扩展PassThru NDIS IM驱动——添加IOCTL接口259 11.3.1扩展之后的PassThru驱动(PassThruEx)概况259 11.3.2添加基本的DeviceIoControl接口260 11.3.3添加绑定枚举功能264 11.3.4添加ADAPT结构的引用计数268 11.3.5适配器句柄的打开/关闭函数269 11.3.6句柄事件通知274 11.3.7查询和设置适配器的OID信息275 11.4扩展PassThru NDIS IM驱动——添加过滤规则281 11.4.1需要考虑的事项282 11.4.2过滤相关的数据结构282 11.4.3过滤列表284 11.4.4网络活动状态285 11.4.5IOCTL控制代码285 11.4.6过滤数据288 11.5核心层过滤实例295 2章Windows网络防火墙开发技术297 12.1防火墙技术概述297 12.2金羽(Phoenix)个人防火墙浅析298 12.2.1金羽(Phoenix)个人防火墙简介298 12.2.2金羽(Phoenix)个人防火墙总体设计299 12.2.3金羽(Phoenix)个人防火墙总体结构300 12.3开发前的准备300 12.3.1常量的定义300 12.3.2访问规则302 12.3.3会话结构303 12.3.4文件结构303 12.3.5UNICODE支持308 12.4应用层DLL模块309 12.4.1DLL工程框架309 12.4.2共享数据和IO控制313 12.4.3访问控制列表ACL(AccessList)315 12.4.4查找应用程序访问权限的过程318 12.4.5类的接口—检查函数320 12.5核心层SYS模块322 12.6主模块工程324 12.6.1I/O控制类324 12.6.2主应用程序类326 12.6.3主对话框中的属性页328 12.6.4主窗口类329 12.7防火墙页面331 12.7.1网络访问监视页面331 12.7.2应用层过滤规则页面334 12.7.3核心层过滤规则页面342 12.7.4系统设置页面347 3章IP帮助函数350 13.1IP配置信息350 13.1.1获取网络配置信息350 13.1.2管理网络接口351 13.1.3管理IP地址355 13.2获取网络状态信息357 13.2.1获取TCP连接表358 13.2.2获取UDP监听表360 13.2.3获取IP统计数据362 13.3路由管理368 13.3.1获取路由表368 13.3.2管理特定路由371 13.3.3修改默认网关的例子371 13.4ARP表管理372 13.4.1获取ARP表372 13.4.2添加ARP入口373 13.4.3删除ARP入口373 13.4.4打印ARP表的例子373 13.5进程网络活动监视实例376 13.5.1获取通信的进程终端377 13.5.2Netstate源程序代码378 4章E-mail协议及其编程382 14.1概述382 14.2电子邮件介绍383 14.2.1电子邮件Internet的地址383 14.2.2Internet邮件系统383 14.2.3电子邮件的信头结构及分析384 14.3SMTP协议原理介绍386 14.3.1SMTP的原理分析386 14.3.2SMTP工作机制386 14.3.3SMTP协议命令码和工作原理387 14.3.4SMTP协议通信模型388 14.3.5SMTP协议的命令和应答389 14.4POP3协议原理介绍390 14.4.1POP3协议简介390 14.4.2POP3工作原理391 14.4.3POP3命令原始码392 14.4.4POP3会话实例397 14.5实例分析与程序设计398 14.5.1总界面设计398 14.5.2SMTP客户端设计399 14.5.3POP3客户端设计410 5章Telnet协议及其编程417 15.1概述417 15.2Telnet协议使用417 15.3Telnet协议原理419 15.4实例分析与程序设计421 6章FTP协议及其编程429 16.1概述429 16.1.1背景429 16.1.2下载和上传429 16.1.3登录和匿名430 16.1.4目标430 16.1.5缺点430 16.2FTP工作原理430 16.3FTP使用模式432 16.4FTP的常用命令与响应433 16.5实例分析与程序设计435 7章多平台同步随身阅读——Send To Kindle的一种实现方式448 17.1Amazon Kindle简介448 17.2多平台同步阅读概述449 17.3Send To Kindle PC版简介450 17.4推送到Kindle的工作原理451 17.5Kindle对邮箱附件的要求452 17.6使用附件方式发送待阅读文章到Kindle452 17.7系统右键菜单集成462 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。