Windows網(wǎng)絡(luò)編程 第2版 劉琰 王清賢
定 價:59 元
- 作者:劉琰 王清賢
- 出版時間:2024/11/1
- ISBN:9787111740513
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書全面介紹計算機網(wǎng)絡(luò)通信程序設(shè)計的基本原理,重點闡述Windows Sockets編程和WinPcap編程的主要思想、程序設(shè)計方法、開發(fā)技巧和可能的陷阱,分析了不同編程方法的適用性和優(yōu)缺點。
本書全面系統(tǒng)地介紹了網(wǎng)絡(luò)編程的基本原理。第1~3章闡述網(wǎng)絡(luò)編程涉及的基礎(chǔ)知識,包括網(wǎng)絡(luò)應(yīng)用程序基礎(chǔ)、網(wǎng)絡(luò)程序通信模型和網(wǎng)絡(luò)數(shù)據(jù)的內(nèi)容與形態(tài)等;第4~7章重點介紹Windows Sockets編程的基本方法,包括協(xié)議軟件接口,Windows Sockets中的流式套接字、數(shù)據(jù)報套接字和原始套接字;第8章詳細(xì)講解了Windows系統(tǒng)中常用的I/O模型的基本概念、相關(guān)函數(shù)、編程框架和應(yīng)用場合;第9章闡述了基于Npcap的網(wǎng)絡(luò)數(shù)據(jù)構(gòu)造、捕獲、過濾和分析技術(shù);第10章介紹了網(wǎng)絡(luò)加密通信的基本過程和使用套接字進(jìn)行加密操作的編程方法。本書結(jié)構(gòu)清晰、實用性強,既突出基本原理和技術(shù),又強調(diào)工程實踐,適合作為高校網(wǎng)絡(luò)空間安全相關(guān)專業(yè)、計算機相關(guān)專業(yè)的教材,也適合作為從事網(wǎng)絡(luò)應(yīng)用開發(fā)、網(wǎng)絡(luò)安全工作的技術(shù)人員的參考書。
前 言
在信息化高度發(fā)展的今天,技術(shù)日新月異,網(wǎng)絡(luò)應(yīng)用層出不窮。越來越多的應(yīng)用運行在網(wǎng)絡(luò)環(huán)境下,要求程序員能夠在廣泛使用的Windows操作系統(tǒng)上開發(fā)網(wǎng)絡(luò)應(yīng)用程序。目前,國內(nèi)大批專門從事網(wǎng)絡(luò)技術(shù)開發(fā)與技術(shù)服務(wù)的機構(gòu)和高科技企業(yè)需要網(wǎng)絡(luò)基礎(chǔ)扎實、編程技術(shù)精湛的專業(yè)技術(shù)人才。作為計算機網(wǎng)絡(luò)課程體系的重要組成部分,網(wǎng)絡(luò)編程相關(guān)課程已在國內(nèi)各大高校開設(shè)。
本書著眼于基本技能的訓(xùn)練和強化,以問題為牽引,由淺入深,輔以前后貫穿的范例,力求將編程方法的使用場合分析透徹,將網(wǎng)絡(luò)編程的原理解釋清楚,并讓讀者能夠?qū)W(wǎng)絡(luò)通信中遇到的瓶頸問題進(jìn)行優(yōu)化、改進(jìn)。本書詳細(xì)地介紹了網(wǎng)絡(luò)編程的基本原理,剖析了網(wǎng)絡(luò)應(yīng)用程序?qū)崿F(xiàn)與套接字實現(xiàn)和協(xié)議實現(xiàn)之間的關(guān)聯(lián),重點闡述了Windows Sockets編程和Npcap編程的主要思想和方法,分析了不同編程方法的適用性和優(yōu)缺點。通過學(xué)習(xí)本書,讀者可以熟悉Windows系統(tǒng)中網(wǎng)絡(luò)編程的基本方法,系統(tǒng)掌握網(wǎng)絡(luò)數(shù)據(jù)處理的原理和技術(shù),提高網(wǎng)絡(luò)實踐能力,為將來從事網(wǎng)絡(luò)技術(shù)研究、網(wǎng)絡(luò)應(yīng)用程序開發(fā)和網(wǎng)絡(luò)管理等工作打下堅實的基礎(chǔ)。
本書第1版出版于2014年,距今已十年。在這十年中,不僅計算機網(wǎng)絡(luò)有了長足的發(fā)展,而且國內(nèi)計算機網(wǎng)絡(luò)相關(guān)專業(yè)的學(xué)生和從業(yè)人員的技術(shù)水平、編程需求也有了明顯變化,因此在第2版中,我們針對原有內(nèi)容做了大量調(diào)整、修改和增刪。
全書共有10章和1個附錄。第1~3章闡述網(wǎng)絡(luò)編程涉及的基礎(chǔ)知識,包括分布式網(wǎng)絡(luò)應(yīng)用程序的結(jié)構(gòu)、TCP/IP基礎(chǔ)、網(wǎng)絡(luò)程序通信模型和網(wǎng)絡(luò)數(shù)據(jù)的內(nèi)容與形態(tài)等;第4~7章重點介紹Windows Sockets編程的基本方法,包括協(xié)議軟件接口,以及Windows Sockets中的流式套接字、數(shù)據(jù)報套接字和原始套接字(重點介紹這三種基本套接字的使用場合、通信功能、處理細(xì)節(jié)和優(yōu)化策略等);第8章詳細(xì)講解Windows系統(tǒng)中常用的I/O模型的基本概念、相關(guān)函數(shù)、編程框架和應(yīng)用場合;第9章重點闡述基于Npcap的網(wǎng)絡(luò)數(shù)據(jù)構(gòu)造、捕獲、過濾和分析技術(shù);第10章介紹網(wǎng)絡(luò)加密通信的基本過程和使用套接字進(jìn)行加密操作的編程方法;附錄中給出了Windows Sockets錯誤碼和錯誤描述。
為了方便讀者閱讀和學(xué)習(xí)以及教師授課,編者將提供相關(guān)的輔助資源,讀者可以登錄機械工業(yè)出版社網(wǎng)站下載相關(guān)資源。
本書由中國人民解放軍網(wǎng)絡(luò)空間部隊信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院組織編寫,劉琰教授負(fù)責(zé)第1~8章的撰寫和示例代碼,王清賢教授、羅向陽教授、楊春芳副教授參與部分章節(jié)的編寫并審校全書,楊忠信負(fù)責(zé)第9章的撰寫和示例代碼,陳熹負(fù)責(zé)第10章的撰寫和示例代碼,杜少勇主要負(fù)責(zé)書中示例代碼的優(yōu)化和教學(xué)資源制作。
本書是編者根據(jù)多年來的網(wǎng)絡(luò)應(yīng)用程序開發(fā)和課程教學(xué)經(jīng)驗,在內(nèi)部講義的基礎(chǔ)上反復(fù)修改后編寫而成的。由于網(wǎng)絡(luò)技術(shù)發(fā)展迅速,限于作者水平,書中疏漏和錯誤之處在所難免,懇請讀者和有關(guān)專家不吝賜教。
編 者
2023年7月
劉琰,信息工程大學(xué)四院教授,主要研究方向為網(wǎng)絡(luò)安全、漏洞挖掘等,發(fā)表十余篇高質(zhì)量學(xué)術(shù)論文,參與軍隊、省部級科研項目多項。長期為網(wǎng)絡(luò)空間安全專業(yè)學(xué)生講授“網(wǎng)絡(luò)攻防”“windows網(wǎng)絡(luò)編程”“網(wǎng)絡(luò)安全實踐”等課程,多次獲得校級教學(xué)獎。
目 錄
前言
教學(xué)和閱讀建議
第1章 網(wǎng)絡(luò)應(yīng)用程序設(shè)計基礎(chǔ) 1
1.1 計算機網(wǎng)絡(luò)基礎(chǔ) 1
1.1.1 協(xié)議層次和服務(wù)模型 1
1.1.2 網(wǎng)絡(luò)程序的尋址方式 4
1.2 分布式網(wǎng)絡(luò)應(yīng)用程序 6
1.3 網(wǎng)絡(luò)編程方法概覽 7
1.3.1 面向應(yīng)用的網(wǎng)絡(luò)編程方法 7
1.3.2 基于TCP/IP協(xié)議棧的網(wǎng)絡(luò)
編程方法 8
1.3.3 面向原始幀的網(wǎng)絡(luò)編程方法 9
習(xí)題 10
第2章 網(wǎng)絡(luò)程序通信模型 11
2.1 網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)通信之間的
關(guān)系 11
2.2 會聚點問題 12
2.3 客戶/服務(wù)器模型 13
2.3.1 基本概念 13
2.3.2 客戶與服務(wù)器的關(guān)系 14
2.3.3 服務(wù)器軟件的特點與分類 16
2.3.4 客戶/服務(wù)器模型的優(yōu)缺點 18
2.4 瀏覽器/服務(wù)器模型 19
2.4.1 基本概念 19
2.4.2 瀏覽器/服務(wù)器模型的工作
過程 19
2.4.3 瀏覽器/服務(wù)器模型的
優(yōu)缺點 20
2.5 P2P模型 20
2.5.1 基本概念 20
2.5.2 P2P網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu) 21
習(xí)題 23
實驗 23
第3章 網(wǎng)絡(luò)數(shù)據(jù)的內(nèi)容與形態(tài) 24
3.1 整數(shù)的長度與符號 24
3.1.1 整數(shù)的長度 24
3.1.2 整數(shù)的符號 25
3.2 字節(jié)順序 25
3.3 結(jié)構(gòu)的對齊與填充 27
3.4 網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)男螒B(tài) 30
3.5 字符編碼 30
3.5.1 字符集傳輸編碼標(biāo)準(zhǔn) 31
3.5.2 文本化傳輸編碼標(biāo)準(zhǔn) 32
3.6 數(shù)據(jù)校驗 34
習(xí)題 35
第4章 協(xié)議軟件接口 37
4.1 TCP/IP協(xié)議軟件接口 37
4.1.1 協(xié)議軟件接口的位置 37
4.1.2 協(xié)議軟件接口的功能 37
4.2 網(wǎng)絡(luò)通信的基本方法 38
4.2.1 如何訪問TCP/IP 38
4.2.2 UNIX中的基本I/O功能 39
4.2.3 實現(xiàn)網(wǎng)間進(jìn)程通信必須解決的問題 39
4.3 套接字 40
4.3.1 套接字編程接口的起源與
發(fā)展 40
4.3.2 套接字的抽象概念 40
4.3.3 套接字接口層的位置與內(nèi)容 41
4.3.4 套接字通信 43
4.4 Windows套接字 43
4.4.1 Windows Sockets規(guī)范 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
習(xí)題 58
實驗 58
第5章 流式套接字編程 59
5.1 TCP:傳輸控制協(xié)議的要點 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 流式套接字服務(wù)器的工作
原理 66
5.3 基本函數(shù)與操作 67
5.3.1 創(chuàng)建和關(guān)閉套接字 67
5.3.2 指定地址 69
5.3.3 連接套接字 71
5.3.4 數(shù)據(jù)傳輸 73
5.4 編程示例 74
5.4.1 基于流式套接字的回射客戶端
編程操作 74
5.4.2 基于流式套接字的回射服務(wù)器
端編程操作 80
5.5 TCP的流傳輸控制 86
5.5.1 TCP的流傳輸特點 86
5.5.2 使用TCP發(fā)送和接收數(shù)據(jù)時的緩存 87
5.5.3 正確處理流數(shù)據(jù)的接收 90
5.5.4 接收定長和變長數(shù)據(jù) 91
5.6 面向連接程序的可靠性保護(hù) 96
5.6.1 發(fā)送成功不等于發(fā)送有效 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 設(shè)置合適的緩沖區(qū)大小 114
習(xí)題 116
實驗 116
第6章 數(shù)據(jù)報套接字編程 117
6.1 UDP:用戶數(shù)據(jù)報協(xié)議的要點 117
6.1.1 使用TCP傳輸數(shù)據(jù)的缺點 117
6.1.2 UDP的傳輸特點 118
6.1.3 UDP的 118
6.2 數(shù)據(jù)報套接字編程模型 119
6.2.1 數(shù)據(jù)報套接字編程的適用
場合 119
6.2.2 數(shù)據(jù)報套接字的通信過程 120
6.2.3 數(shù)據(jù)報套接字編程的交互
模型 120
6.2.4 數(shù)據(jù)報套接字服務(wù)器的工作
原理 121
6.2.5 數(shù)據(jù)報套接字的使用模式 122
6.3 基本函數(shù)與操作 124
6.3.1 創(chuàng)建和關(guān)閉套接字 124
6.3.2 指定地址 124
6.3.3 數(shù)據(jù)傳輸 124
6.4 編程示例 125
6.4.1 基于數(shù)據(jù)報套接字的回射
客戶端編程操作 126
6.4.2 基于數(shù)據(jù)報套接字的回射
服務(wù)器端編程操作 128
6.5 提高無連接程序的可靠性 132
6.5.1 UDP的不可靠性問題 132
6.5.2 排除噪聲數(shù)據(jù) 133