导航:首页 > 编程大全 > windows网络与通信程序设计

windows网络与通信程序设计

发布时间:2024-01-20 19:23:06

⑴ 求推荐一本 VC++网络编程 的好书

Windows网络与通信程序设计(第2版)王艳平这本书写的非常好,我有本王艳平写的windows程序设计,写得很好,我自己不做网络开发,就没有买网络的那本书!不过推荐你看看,真的很不错!

本书将编程方法、网络协议和应用实例有机结合起来,详细阐明Windows网络编程的各方面内容。本书首先介绍Windows平台上进行网络编程的基础知识,包括网络硬件、术语、协议、Winsock编程接口和各种I/O方法等;然后通过具体实例详细讲述当前流行的高性能可伸缩服务器设计、IP多播和Internet广播、P2P程序设计、原始套接字、SPI、协议驱动的开发和原始以太数据的发送、ARP欺骗技术、LAN和WAN上的扫描和侦测技术、个人防火墙与网络封包截获技术等;最后讲述IP帮助函数和E-mail的开发方法。本书结构紧凑,内容由浅入...

第1章计算机网络基础1

1.1网络的概念和网络的组成1

1.2计算机网络参考模型2

1.2.1协议层次2

1.2.2TCP/IP参考模型2

1.2.3应用层(ApplicationLayer)3

1.2.4传输层(TransportLayer)3

1.2.5网络层(NetworkLayer)3

1.2.6链路层(LinkLayer)4

1.2.7物理层(PhysicalLayer)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网络程序开发环境12

第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字节顺序16

2.2.3获取地址信息17

2.3Winsock编程详解20

2.3.1Winsock编程流程20

2.3.2典型过程图23

2.3.3TCP服务器和客户端程序举例24

2.3.4UDP编程26

2.4网络对时程序实例28

2.4.1时间协议(TimeProtocol)28

2.4.2TCP/IP实现代码29

第3章Windows套接字I/O模型31

3.1套接字模式31

3.1.1阻塞模式31

3.1.2非阻塞模式31

3.2选择(select)模型32

3.2.1select函数32

3.2.2应用举例33

3.3WSAAsyncSelect模型36

3.3.1消息通知和WSAAsyncSelect函数36

3.3.2应用举例37

3.4WSAEventSelect模型40

3.4.1WSAEventSelect函数40

3.4.2应用举例42

3.4.3基于WSAEventSelect模型的服务器设计44

3.5重叠(Overlapped)I/O模型53

3.5.1重叠I/O函数53

3.5.2事件通知方式56

3.5.3基于重叠I/O模型的服务器设计56

第4章IOCP与可伸缩网络程序67

4.1完成端口I/O模型67

4.1.1什么是完成端口(completionport)对象67

4.1.2使用IOCP的方法67

4.1.3示例程序69

4.1.4恰当地关闭IOCP72

4.2Microsoft扩展函数72

4.2.1GetAcceptExSockaddrs函数73

4.2.2TransmitFile函数73

4.2.3TransmitPackets函数74

4.2.4ConnectEx函数75

4.2.5DisconnectEx函数76

4.3可伸缩服务器设计注意事项76

4.3.1内存资源管理76

4.3.2接受连接的方法77

4.3.3恶意客户连接问题77

4.3.4包重新排序问题78

4.4可伸缩服务器系统设计实例78

4.4.1CIOCPServer类的总体结构78

4.4.2数据结构定义和内存池方案82

4.4.3自定义帮助函数85

4.4.4开启服务和停止服务88

4.4.5I/O处理线程93

4.4.6用户接口和测试程序99

第5章互联网广播和IP多播100

5.1套接字选项和I/O控制命令100

5.1.1套接字选项100

5.1.2I/O控制命令102

5.2广播通信103

5.3IP多播(Multicasting)105

5.3.1多播地址105

5.3.2组管理协议(IGMP)105

5.3.3使用IP多播106

5.4基于IP多播的组讨论会实例110

5.4.1定义组讨论会协议110

5.4.2线程通信机制111

5.4.3封装CGroupTalk类111

5.4.4程序界面117

第6章原始套接字121

6.1使用原始套接字121

6.2ICMP编程121

6.2.1ICMP与校验和的计算121

6.2.2Ping程序实例124

6.2.3路由跟踪126

6.3使用IP头包含选项129

6.3.1IP数据报格式129

6.3.2UDP数据报格式131

6.3.3原始UDP封包发送实例133

6.4网络嗅探器开发实例134

6.4.1嗅探器设计原理135

6.4.2网络嗅探器的具体实现136

6.4.3侦听局域网内的密码138

6.5TCP通信开发实例140

6.5.1创建一个原始套接字,并设置IP头选项140

6.5.2构造IP头和TCP头140

6.5.3发送原始套接字数据报142

6.5.4接收数据146

第7章Winsock服务提供者接口(SPI)147

7.1SPI概述147

7.2Winsock协议目录148

7.2.1协议特性149

7.2.2使用WinsockAPI函数枚举协议150

7.2.3使用WinsockSPI函数枚举协议151

7.3分层服务提供者(LSP)153

7.3.1运行原理153

7.3.2安装LSP154

7.3.3移除LSP158

7.3.4编写LSP159

7.3.5LSP实例161

7.4基于SPI的数据报过滤实例165

7.5基于Winsock的网络聊天室开发171

7.5.1服务端171

7.5.2客户端171

7.5.3聊天室程序的设计说明172

7.5.4核心代码分析172

第8章Windows网络驱动接口标准(NDIS)和协议驱动的开发176

8.1核心层网络驱动176

8.1.1Windows2000及其后产品的网络体系结构176

8.1.2NDIS网络驱动程序177

8.1.3网络驱动开发环境178

8.2WDM驱动开发基础181

8.2.1UNICODE字符串181

8.2.2设备对象181

8.2.3驱动程序的基本结构183

8.2.4I/O请求包(I/Orequestpacket,IRP)和I/O堆栈183

8.2.5完整驱动程序示例186

8.2.6扩展派遣接口188

8.2.7应用举例(进程诊测实例)191

8.3开发NDIS网络驱动预备知识198

8.3.1中断请求级别(InterruptRequestLevel,IRQL)198

8.3.2旋转锁(SpinLock)198

8.3.3双链表199

8.3.4封包结构199

8.4NDIS协议驱动200

8.4.1注册协议驱动200

8.4.2打开下层协议驱动的适配器201

8.4.3协议驱动的封包管理202

8.4.4在协议驱动中接收数据203

8.4.5从协议驱动发送封包204

8.5NDIS协议驱动开发实例204

8.5.1总体设计204

8.5.2NDIS协议驱动的初始化、注册和卸载206

8.5.3下层NIC的绑定和解除绑定209

8.5.4发送数据217

8.5.5接收数据219

8.5.6用户IOCTL处理225

第9章网络扫描与检测技术233

9.1网络扫描基础知识233

9.1.1以太网数据帧233

9.1.2ARP234

9.1.3ARP格式236

9.1.4SendARP函数237

9.2原始以太封包的发送238

9.2.1安装协议驱动238

9.2.2协议驱动用户接口238

9.2.3发送以太封包的测试程序244

9.3局域网计算机扫描245

9.3.1管理原始ARP封包246

9.3.2ARP扫描示例249

9.4互联网计算机扫描253

9.4.1端口扫描原理253

9.4.2半开端口扫描实现254

9.5ARP欺骗原理与实现259

9.5.1IP欺骗的用途和实现原理259

9.5.2IP地址冲突260

9.5.3ARP欺骗示例261

第10章点对点(P2P)网络通信技术264

10.1P2P穿越概述264

10.2一般概念265

10.2.1NAT术语265

10.2.2中转265

10.2.3反向连接266

10.3UDP打洞267

10.3.1中心服务器267

10.3.2建立点对点会话267

10.3.3公共NAT后面的节点267

10.3.4不同NAT后面的节点268

10.3.5多级NAT后面的节点269

10.3.6UDP空闲超时270

10.4TCP打洞271

10.4.1套接字和TCP端口重用271

10.4.2打开点对点的TCP流271

10.4.3应用程序看到的行为272

10.4.4同步TCP打开273

10.5Internet点对点通信实例273

10.5.1总体设计273

10.5.2定义P2P通信协议274

10.5.3客户方程序275

10.5.4服务器方程序287

10.5.5测试程序291

第11章核心层网络封包截获技术294

11.1Windows网络数据和封包过滤概述294

11.1.1Windows网络系统体系结构图294

11.1.2用户模式下的网络数据过滤295

11.1.3内核模式下的网络数据过滤296

11.2中间层网络驱动PassThru296

11.2.1PassThruNDIS中间层驱动简介296

11.2.2编译和安装PassThru驱动297

11.3扩展PassThruNDISIM驱动——添加IOCTL接口297

11.3.1扩展之后的PassThru驱动(PassThruEx)概况297

11.3.2添加基本的DeviceIoControl接口298

11.3.3添加绑定枚举功能302

11.3.4添加ADAPT结构的引用计数307

11.3.5适配器句柄的打开/关闭函数308

11.3.6句柄事件通知315

11.3.7查询和设置适配器的OID信息315

11.4扩展PassThruNDISIM驱动——添加过滤规则323

11.4.1需要考虑的事项323

11.4.2过滤相关的数据结构324

11.4.3过滤列表326

11.4.4网络活动状态327

11.4.5IOCTL控制代码328

11.4.6过滤数据331

11.5核心层过滤实例339

第12章Windows网络防火墙开发技术342

12.1防火墙技术概述342

12.2金羽(Phoenix)个人防火墙浅析343

12.2.1金羽(Phoenix)个人防火墙简介343

12.2.2金羽(Phoenix)个人防火墙总体设计344

12.2.3金羽(Phoenix)个人防火墙总体结构345

12.3开发前的准备345

12.3.1常量的定义346

12.3.2访问规则348

12.3.3会话结构348

12.3.4文件结构349

12.3.5UNICODE支持355

12.4应用层DLL模块356

12.4.1DLL工程框架356

12.4.2共享数据和IO控制362

12.4.3访问控制列表ACL(AccessList)364

12.4.4查找应用程序访问权限的过程367

12.4.5类的接口——检查函数370

12.5核心层SYS模块373

12.6主模块工程375

12.6.1I/O控制类375

12.6.2主应用程序类377

12.6.3主对话框中的属性页380

12.6.4主窗口类381

12.7防火墙页面383

12.7.1网络访问监视页面383

12.7.2应用层过滤规则页面387

12.7.3核心层过滤规则页面397

12.7.4系统设置页面403

第13章IP帮助函数406

13.1IP配置信息406

13.1.1获取网络配置信息406

13.1.2管理网络接口408

13.1.3管理IP地址412

13.2获取网络状态信息415

13.2.1获取TCP连接表415

13.2.2获取UDP监听表418

13.2.3获取IP统计数据420

13.3路由管理427

13.3.1获取路由表427

13.3.2管理特定路由431

13.3.3修改默认网关的例子432

13.4ARP表管理433

13.4.1获取ARP表433

13.4.2添加ARP入口434

13.4.3删除ARP入口434

13.4.4打印ARP表的例子434

13.5进程网络活动监视实例438

13.5.1获取通信的进程终端438

13.5.2Netstate源程序代码439

第14章Email协议及其编程444

14.1概述444

14.2电子邮件介绍445

14.2.1电子邮件Internet的地址445

14.2.2Internet邮件系统445

14.2.3电子邮件信头的结构及分析446

14.3SMTP原理448

14.3.1SMTP原理分析448

14.3.2SMTP工作机制449

14.3.3SMTP命令码和工作原理449

14.3.4SMTP通信模型450

14.3.5SMTP的命令和应答451

14.4POP3协议原理452

14.4.1POP3协议简介452

14.4.2POP3工作原理453

14.4.3POP3命令原始码454

14.4.4POP3会话实例459

14.5实例分析与程序设计460

14.5.1总界面设计460

14.5.2SMTP客户端设计461

14.5.3POP3客户端设计473

⑵ 关于计算机网络方面的书籍

1. 计算机网络常识书籍
计算机网络常识书籍 1.计算机网络入门需要看那些书籍
1)编码:隐匿在计算机软硬件背后的语言,此书从信息的编码,数字的不同进制表示,到计算机采用的二进制机器级表示开始,到用电路构建一个简单的加法器,触发器,计数器,存储器,甚至一个具有控制器,运算器,存储器的简易CPU,娓娓道来,真是醍醐灌顶。最后还谈到了图形界面的原理。此书作者更是被传为圣经的《Windows程序设计》的作者Charles Petzold。读完此书可对计算机硬件的原理与设计有一全面深入之认识,犹如身处群山之巅,一览无余。

2)深入理解计算机系统 上一本《编码》通俗易懂,即使没有计算机相关知识也能懂,但缺乏一些计算机机制的介绍。此书是国外著名的介绍计算机系统方面的书,从程序员的角度带你畅游计算机系统架构。涉及程序的机器级表示(机器码,汇编),处理器体系结构,存储器结构,系统IO,网络编程,并发编程,以及程序性能的优化。读完此书可对计算机系统,程序设计有一深层次了解。

3)就C语言而言,K&R的 C程序设计语言 的无疑是最好的参考书,不过对初学者来说还是有一定难度,辅以诸如 C和指针 ,C陷阱与缺陷 会有更好的效果。当然多写程序才是王道,多写才能发现问题,加深认识。

4)Debug Hacks 此书介绍GDB调试工具及调试技巧,本人现在主要就是使用gcc gdb啦。此书助你更好的找出臭虫。

6)数据结构与算法分析 介绍算法和数据结构的书籍很多,但本人就是用这本书学习的,所以推荐。此书的前3章和第7章就介绍了题主要求的一些数据结构和算法,后面几张介绍树,排序,图论算法,及一些高级数据结构。读完此书将助你设计更优美的程序。
2.计算机网络经典书籍
《tcpip详解》分三卷,国外经典计算机教材,有中文译版,不过不适合你的。

《计算机网络》也分很多种,如果你要考网工的话或者你想学习网络推荐你看以下的书籍:

网络工程教程(第二版) 雷震甲 主遍 清华大学出版 (这本太深了,不过内容全)网工指定教材

网络工程必读系列 王达 这套书我看了两遍,实在不错。。。

计算机网络第五版 谢希仁 主遍 谢希仁同时还出了很多书都关于TCP/IP的书籍,具体书名我忘记,我觉得他讲解得思路清晰,易理解,适合基础旅岩差的。

计算档散机网络第四版,这是国外经典计算机网络经典教程,作者都是英文名字(具体我忘记了) ,我以前我学时很喜欢看这本。
3.计算机网络方面有哪些书籍值得推荐
计算机网络第五版,谢希仁的,个人感觉是国内最好的初级书籍。

如果想对网络有个清晰、全面的认识,可以阅读下面三本书籍: 第一本就是潘爱民翻译的Andrew S.Tanenbaum的《计算机网络》,此书讲明白了网络之道,即计算机网络通信的主要原理; 第二本是W.Richard Stevens的《TCP/IP详解卷一:协议》,此书讲明白了网络之术,即TCP/IP协行镇氏议簇的工作过程; 第三本是Douglas E.er的《计算机网络与因特网》,此书尝试在更广泛意义上解答“计算机网络和因特网是如何工作的”这一基本问题,解释了协议是如何使用硬件和应用是如何使用协议来满足用户的需求。
4.有关计算机编程,网络基础知识的书籍
建议你从C语言开始学,学好了它以后学其他语言会很容易上手

推荐你先看谭浩强的《C语言程序设计》先,这是一部非常好的C语言书籍,慢慢来学习程序设计是一个非常漫长的过程,不要着急,一本书多看两遍三遍,学会交叉学习法,在学习C的过程中,可以看看数据结构,编译原理,操作系统等书籍,对编成都是很有帮助的。最开始学习的时候,先不要编一些比较大的程序,多编一些小程序,比如数组运算,字符组合等等,指针是C语言的精华,是比较复杂的部分。如果指针这部分都可以熟练的应用,那么C语言里你还有什么不明白的吗,我相信你,你一定能学习好C语言的。

可以按照C——C++——JAVA的顺序学习,C++的学习是很有难度的,类,标准库,多态,继承等等比较抽象难道懂的概念,虽然他秉承了C语言的风格,但是有很多很多是C语言不具备的,要多看书,上机实践也是必不可少的。《C++编程思想》,《C++标准库》,这些书都非常好,内容也很全面,例程书籍也是必不可少的,多看源代码对编程是很有帮助的,也会少走很多弯路。总之,C++的学习是一个比较漫长的过程,大概需要两年的时间,这只是底限,如果想学通,学精,还需要更多的时间。

我向你推荐一些C++经典书籍:

c++程序设计教程

c++编程思想

c++大学教程

c++程序设计语言

数据结构算法与应用c++语言描述

c++标准模板库------自修教程与参考手册

泛型编程与STL

深度探索c++对象模型

设计模式---可复用面向对象软件的基础

重构---改善既有代码的设计

Essential c++

Effective c++

More Effctive c++

C++ primer

前五本应该属于入门书籍,后面的属于学习难度比较大的,想提高C++的编程能力,看看这些书籍有好处。建议你把编程思想这本书多看看。多做练习题,对提高编程水平的帮助是很大的。

其实语言是相通的,一门语言学会了,学习其他语言就比较容易了。

业界有这样一种说法,因为JAVA这门语言包含了C++的一些特性,掌握了C++,就等于掌握了JAVA的80%,

在掌握了C++之后(我说的掌握指的是,可以熟练用C++编程序了,并没有要求你完全掌握C++的所有部分,没有人能达到这一点,因为C++太庞大了,如果能坚持不懈的学习C++两年到三年的时间了,你就可以学习其他的语言了)可以试着学习一些其他的语言,如JAVA,VC++等等比较复杂的语言.

这时候可以说你已经对程序设计语言有个大体的认识了,可以明确自己学习的方向,根据自己的学习情况而定,是学习一些自己比较感兴趣的语言啊(从兴趣出发),还是为了找工作啊,开始进行更深入的学习.比如学习windows下的框架编程和编程等等比较复杂的语言.

如果是为了找工作的话你一定学好C,C++,JAVA三门语言.

在我国目前的软件开发行业中,C,C++,JAVA的需求量是非常大的.

好了,说了这么多,可以参考一下,为自己做个学习计划,要对自己有信心,最后祝你在学习编程的道路上走的更好更远,祝你学有所成!!
5.计算机网络技术的推荐书籍
如果想对网络有个清晰、全面的认识,可以阅读三本书籍:

第一本就是潘爱民翻译的Andrew S.Tanenbaum的《计算机网络》,此书讲明白了网络之道,即计算机网络通信的主要原理;

第二本是W.Richard Stevens的《TCP/IP详解卷一:协议》,此书讲明白了网络之术,即TCP/IP协议簇的工作过程;

第三本是Douglas E.er的《计算机网络与因特网》,此书尝试在更广泛意义上解答“计算机网络和因特网是如何工作的”这一基本问题,解释了协议是如何使用硬件和应用是如何使用协议来满足用户的需求。
6.推荐计算机基础知识学习的书籍
1、《计算机基础(第二版)》——姜岩、王秀玲

本书介绍了信息与计算机的基础知识、Windows XP操作系统的基本操作和基本使用知识、Word

2003文字处理软件的基本知识、Excel 2003电子表格处理软件的基本知识和PowerPoint 2003文档

演示软件等知识做了简单的介绍。

2、《计算机应用基础》 ——刘锡轩、丁恒、侯晓音

本书是为非计算机专业类学生提供计算机一般应用所必需的基础知识、能力和素质的课程。本书满

足普通高等院校培养“应用型人才”的教学宗旨,内容丰富,与时俱进,实用性强。

3、《计算机应用基础》——杨飞宇,孙海波

本书主要介绍了计算机组装与维护、计算机网络技术、电子文档制作、电子报表制作和演示文稿制

作。

4、《计算机应用基础》——张 明、王 翠、张和伟

本书采用任务驱动的方式进行编写,内容强调操作性和实用性。全书涵盖计算机基础知识、

Windows XP操作系统、Word 2003文字处理软件、Excel 2003电子表格处理软件和PowerPoint

2003演示文稿制作软件等内容。

5、《深入理解计算机系统》————布赖恩特

本书主要介绍了计算机系统的基本概念,包括最底层的内存中的数据表示、流水线指令的构成、虚

拟存储器、编译系统、动态加载库,以及用户应用等。书中提供了大量实际操作,可以帮助读者更

好地理解程序执行的方式,改进程序的执行效率。

6、《计算机应用基础》——武马群

本书主要介绍了计算机基础知识、操作系统Windows XP、因特网(Inter)应用、文字处理软件

Word 2003应用、电子表格处理软件Excel 2003应用、多媒体软件应用、演示文稿软PowerPoint

2003应用等内容。

⑶ c语言 windows程序设计!!

应该是
《深入浅出mfc》
《windows编程基础》
《人月神话》
《设计模式》
那些吧!

阅读全文

与windows网络与通信程序设计相关的资料

热点内容
win10怎么查无线网密码是多少 浏览:66
数控车工如何考编程 浏览:48
邮政手机app怎么解绑手机号 浏览:780
cs找不到安装文件 浏览:716
苹果5s玻璃屏是跟白色框一起的吗 浏览:204
做编程手提电脑什么配置好 浏览:283
怎么设置网络快捷开关 浏览:61
u盘大于4g文件怎么复制 浏览:390
数控车床极坐标六角怎么编程 浏览:930
三菱编程控制伺服用什么指令 浏览:60
酷派手机强制4g代码 浏览:173
java数组转成list 浏览:670
乱斗西游2什么版本好 浏览:375
网络节目有什么 浏览:550
孩子学编程有什么前途 浏览:36
iphone6更新有什么坏处 浏览:477
数据系统设计课程能力目标有哪些 浏览:712
程序员都闷骚吗 浏览:595
灵跃机器人编程怎么样 浏览:427
win10生活动态打不开 浏览:731

友情链接