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