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