導航:首頁 > 編程大全 > 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網路與通信程序設計相關的資料

熱點內容
國外人都用什麼app采購 瀏覽:669
梅林寶具升級效果 瀏覽:512
為什麼用u8數據備份不了 瀏覽:703
java文件路徑怎麼讀 瀏覽:690
ps被重復命名的文件怎麼找回 瀏覽:564
少兒編程五級有什麼用 瀏覽:529
網路詞有毒是什麼意思 瀏覽:218
蘋果未越獄怎麼裝ipa文件 瀏覽:831
app版權信息頁怎麼寫 瀏覽:334
現成的編程代碼在哪裡下載 瀏覽:362
java7隨機數 瀏覽:890
網路連接度是什麼意思 瀏覽:610
頭條文件路徑在哪裡 瀏覽:833
java主進程 瀏覽:5
軟體app怎麼分享給別人 瀏覽:547
win10怎麼取消使用簡單文件共享 瀏覽:470
微信小程序編譯不變 瀏覽:551
地推推廣哪些app好 瀏覽:974
win10怎麼查無線網密碼是多少 瀏覽:66
數控車工如何考編程 瀏覽:48

友情鏈接