圖書簡介
本書以能力目標為指引,以項目主題方式組織全文,闡述主機掃描、串口通信、TCP協定編程、UDP協定編程、木馬程式、螢幕監視、IP語音網路通套晚騙信、網路視頻傳輸、Email協定編程、FTP協定編程、網路測量程式、網路信息加密傳輸和網路信息提體墊隱藏通信編程等原理、技術分析、實現方法和開發案例,內容豐富。配套有全部章節的教學PPT、原始碼,可以到
清華大學出版社的網站免費下載,便於教學安排和學生自學。
本書以套接字技術為主線,力求體現網路編程的技術性、實用性和安全性,每章還包含課堂練習和實驗項目內容。這些設計思想,綜合了作者多年的教學改革心得與科研轉化成果,具有一定的先進性。
本書適合作為高等院校計算機及相關專業學生鞏己嘗嘗的教材,也可作為網路通信和信息安全編程人員的參考書。對研究生、教師和科研人員開展網路技術開發也會有重要的幫助。
前言
本書是作者基於計算機網路編程教學與科研工作而編寫的。本書作者先後為企業開發完成了基於Windows環境的電話語音網路系統、純軟體型多媒體網路教學系統、網站安全防護系統和網路測量等軟體。同時,重點研究信息隱藏和網路測量技術,並成功套用於IP電話的隱秘通信、網頁信息隱藏和網頁防篡改、網站安全運行監測等領域。這些工作為本書的編寫積累了大量的技術資源。同時,作者通過多年的網路編程教學,不斷吸收網路新技術,極大地豐富了教學內容。另外,在本書編寫過程中,參照了相關的文獻和網路資料,以補充本書的教學內容。
本書的特色及創新主要表現如下:
技術性和編程方法的結合。使學生在編程的同時,能夠通過設計思路、設計流程等開拓思維,既基於編程又不限於編程。
實用性和趣味性融於一體。以網路開發項目為探說主題,比如主機掃描、網路遊戲開發、手機簡訊編程、木馬技術、遠程監控等項目,容易使學生產生濃厚的興趣。
系統性和層次性緊密結合。從主機掃描、常規通信到安全通信,具有系統性,在設計內容、設計難度和綜合性方面具有層次性,適合於不同深度的需求。
適合教學需要。全部實例都可以調試和運行;具有完整的多媒體課件;每章後面還設計了實驗項目,便於讀者開展課程設計、綜合實驗和畢業設計所用。
體現科研成果。如網路測量、網路信息隱藏通信章節是作者近年來的研究成果內容,而木馬技術、語音通信、網路視頻傳輸、螢幕監控、串口通信等內容,則是作者的科技項目轉化內容。
本書以能力目標為指引,以項目主題方式組織全文,每個主題以單獨的一章介紹,既相互支持,又保持一定的獨立性。每章都給出了主要內容,包括基本原理、開發方法、技術流程、界面設計、編程要點和代碼分析,還給出了課堂練習思考簽提汽內容和實驗項目。
與本書配套的還有課件PPT資料和原始碼。在實現代碼方面,採用C#程式語言,起始於Visual Studio 2005.NET版本,有些內容是Visual Studio 2010.NET版本。目前應安裝使用Visual Studio 2010.NET及其以上版本開展教學。
開設本課程時,授課學時數為40左右。建議在配置多媒體教學投影系統的網路實驗室授課,將授課和學生操練結合在一起,教師可以靈活地控制學生的演練進度和深度,並按照項目組的工作方式,以任務驅動方法為動力,為每組安排單獨的項目,不斷激發學生的編程思路。本書主要供具有一定C語言和網路基礎的本科生使用,面向
計算機科學與技術、信息安全、軟體工程、通信工程、網路工程、
信息與計算科學等專業,可以作為計算機網路編程、網路課程設計、網路安全編程、專業實習等課程的教材或參考書,尋刪設捆還可以供研究生的網路實踐課程使用。
本書是全國高等學校計算機教育研究會2014年立項項目成果,得到了
清華大學出版社的資助,在此謹表衷心感謝。
由於網路技術發展迅速,加之編者水平有限和時間倉促,書中難免不妥之處,敬請廣大讀者不吝賜教。
目錄
第1章緒論1
1.1.1TCP/IP的起源2
1.1.2TCP/IP的體系結構和特點3
1.2網路編程的重要術語4
1.2.1套接字及其類型4
1.2.2網兵茅促間進程通信的標識6
1.2.3客戶機/伺服器模式6
1.3C#網路編程概述8
1.3.1常用的網路組件9
1.3.2尋找IP位址的類和方法10
1.3.3數據流的類型與套用11
1.4套接字編程原理16
1.4.1面向連線的套接字調用流程16
1.4.2無連線套接字調用流程16
1.4.3Socket類的基本使用18
1.4.4套接字的簡單套用實例22
小結23
實驗項目23
第2章主機掃描程式設計25
2.1活動主機探測技術25
2.1.2基於ICMP的探測原理28
2.1.3活動主機探測程式設計29
2.2連線埠掃描技術34
2.2.1連線埠掃描器352.2.2連線埠掃描技術分類36
2.3.1流程設計40
2.3.2程式實現40
2.4高級連線埠掃描程式設計44
2.4.1界面設計45
2.4.2程式實現45
小結57
實驗項目57
第3章串口通信程式設計59
3.1串口通信基本原理和套用方法59
3.1.1串口通信原理59
3.1.2串口通信仿真設計方法63
3.2串口通信編程類介紹64
3.2.1SerialPort類介紹65
3.2.2SerialPort的使用66
3.2.3C# SerialPort運行方式 66
3.3串口通信編程實例67
3.3.1串口通信參數設定68
3.3.2主程式設計69
3.3.3串口通信程式測試74
小結75
實驗項目75
4.1TCP協定介紹76
4.1.1TCP數據包格式77
4.1.2TCP協定的通信特點77
4.1.3TCP的常見連線埠78
4.2.1典型的阻塞模式78
4.2.2阻塞模式的特點79
4.2.3阻塞模式的效率提升方法80
4.2.4非阻塞模式及其套用81
4.3同步套接字編程技術82
4.3.1伺服器的程式設計82
4.3.2客戶機的程式設計87
4.4異步套接字編程技術91
4.4.1客戶機發出連線請求91
4.4.2伺服器接收連線請求91
4.4.3伺服器傳送和接收數據92
4.5基於TcpClient類和TcpListener類的編程94
4.5.1TcpClient類的使用方法94
4.5.2TcpListener類的使用方法95
4.6網路遊戲程式設計96
小結107
實驗項目108
第5章基於UDP協定的程式設計109
5.1UDP協定介紹109
5.1.1UDP數據包格式110
5.1.2UDP協定的主要特性110
5.2使用UdpClient類進行編程111
5.2.1UdpClient類的使用方法111
5.2.2UdpClient類的套用實例113
5.3網路廣播程式設計115
5.3.1廣播程式設計示例116
5.3.2套接字選項設定方法118
5.4多播程式設計119
5.4.1多播地址119
5.4.3多播編程方法121
5.4.4多播編程實例123
小結126
實驗項目127
第6章遠程螢幕監視程式設計128
6.1螢幕捕獲過程解析128
6.2螢幕捕獲程式設計130
6.3基於遠程調用信道的遠程螢幕監視程式設計134
6.3.1遠程調用信道及其套用134
6.3.2基於遠程調用信道的螢幕傳輸程式設計140
6.4基於TCP協定的遠程螢幕監視程式設計144
6.4.1控制端144
6.4.2客戶端145
小結148
實驗項目149
第7章木馬程式設計150
7.1木馬工作原理150
7.1.1木馬系統的組成151
7.1.2木馬的功能和特徵151
7.1.3木馬的傳播與運行152
7.2木馬程式的常規設計153
7.2.1功能設計153
7.2.2流程圖設計153
7.2.3命令規則設計表153
7.2.4檔案操控模組流程155
7.2.5運行界面及說明155
7.2.6主要程式說明157
7.3鍵盤滑鼠控制程式設計161
7.3.1BlockInput()的使用方法161
7.3.2鍵盤鉤子說明161
7.3.3鍵盤滑鼠的網路控制程式設計163
小結169
實驗項目169
第8章IP音頻網路通信程式設計170
8.1音頻編程方法概述170
8.2基於多媒體控制項的音頻播放程式設計171
8.3DirectX組件的工作原理173
8.3.1DirectX簡介173
8.3.2DirectSound簡介175
8.3.3聲音的播放過程176
8.4基於DirectX組件的IP語音網路程式設計177
8.4.1利用DirectX組件實現音頻播放177
8.4.2利用DirectX組件實現音頻採集178
8.4.3基於DirectX組件的IP電話程式設計186
8.5基於低級音頻函式的IP電話程式設計195
8.5.1低級音頻函式的調用方法195
8.5.2利用低級音頻函式實現音頻採集與播放199
8.5.3利用低級音頻函式實現語音通信程式設計207
小結209
實驗項目209
第9章網路視頻傳輸程式設計211
9.1視頻編碼技術211
9.1.1視頻編碼分類211
9.1.2視頻格式轉換214
9.2基於VFW的視頻採集與存儲215
9.2.1VFW介紹215
9.2.2視頻數據處理技術216
9.2.3視頻監控程式設計221
9.3基於VFW的視頻傳輸224
9.3.1視頻傳輸流程224
9.3.2視頻傳送端程式設計226
9.3.3視頻接收端程式設計229
小結232
實驗項目232
第10章Email服務程式設計233
10.1概述233
10.1.1工作原理233
10.1.2相關的協定235
10.2.1SMTP的指令與回響碼236
10.2.2Email的組成237
10.2.3ESMTP的工作流程238
10.2.4ESMTP協定編程實例239
10.3POP3協定編程243
10.3.1POP3的工作流程243
10.3.2POP3協定編程245
10.4利用SmtpMail類傳送Email250
10.4.1System.Web.Mail介紹250
10.4.2處理Email信息及附屬檔案252
10.4.3Email傳送方法253
10.5利用JMail類收發Email254
10.5.1JMail組件的特點254
10.5.2JMail組件的主要參數與使用方法254
10.5.3基於JMail組件的Email傳送編程257
10.5.4基於JMail組件的Email接收編程258
小結260
實驗項目260
第11章FTP服務程式設計262
11.1FTP工作原理262
11.1.1FTP服務的工作原理262
11.1.2FTP的傳輸模式263
11.1.3FTP的登錄方式264
11.2FTP協定規範264
11.2.1FTP命令264
11.2.2FTP回響碼265
11.2.3FTP命令和回響碼的套用方法267
11.3FTP協定的兩種工作模式268
11.3.1FTP PORT模式(主動模式)268
11.3.2FTP PASV模式(被動模式)269
11.3.3兩種模式的比較270
11.4基於Socket類的FTP程式設計271
11.5基於TcpClient類的FTP程式設計288
11.5.1傳送與接受數據的方法288
11.5.2伺服器程式290
11.5.3客戶機程式291
小結295
實驗項目295
第12章網路測量程式設計297
12.1網路測量概述297
12.1.1網路測量的分類298
12.1.2網路測量的研究方向299
12.1.3網路測量工具300
12.2網路測量技術303
12.2.1主要測量指標303
12.2.2時延計算305
12.2.3ICMP時間戳請求與應答307
12.3網站可達性測量程式設計308
12.3.1網站測量概述308
12.3.2系統設計思路309
12.3.4程式實現311
小結324
實驗項目324
第13章網路信息加密傳輸程式設計325
13.1數據加密模型325
13.1.1數據加密工作模型326
13.1.2對稱加密模型326
13.1.3非對稱加密模型327
13.1.4數字簽名模型328
13.2對稱加密程式設計330
13.2.2基於流的加密解密方法331
13.2.3對稱加密程式設計實例334
13.3非對稱加密程式設計337
13.4網路信息加密傳輸程式設計345
13.4.1伺服器的實現345
13.4.2客戶機的實現353
小結360
實驗項目360
第14章網路信息隱藏通信程式設計361
14.1LSB信息隱藏方法361
14.2基於LSB的檔案隱藏傳輸程式設計363
14.2.1設計思路363
14.2.2信息同步技術364
14.2.3LSB的改進算法設計365
14.2.4主要代碼實現365
14.3IP語音隱秘通信程式設計372
14.3.1設計思路372
14.3.2傳送端關鍵代碼373
14.3.3接收端關鍵代碼375
14.4網頁信息隱藏程式設計377
14.4.1網頁入侵檢測的工作原理377
14.4.2網頁入侵檢測系統的設計377
14.4.3網頁入侵檢測系統的實現378
小結386
實驗項目386
參考文獻387
開設本課程時,授課學時數為40左右。建議在配置多媒體教學投影系統的網路實驗室授課,將授課和學生操練結合在一起,教師可以靈活地控制學生的演練進度和深度,並按照項目組的工作方式,以任務驅動方法為動力,為每組安排單獨的項目,不斷激發學生的編程思路。本書主要供具有一定C語言和網路基礎的本科生使用,面向
計算機科學與技術、信息安全、軟體工程、通信工程、網路工程、
信息與計算科學等專業,可以作為計算機網路編程、網路課程設計、網路安全編程、專業實習等課程的教材或參考書,還可以供研究生的網路實踐課程使用。
本書是全國高等學校計算機教育研究會2014年立項項目成果,得到了
清華大學出版社的資助,在此謹表衷心感謝。
由於網路技術發展迅速,加之編者水平有限和時間倉促,書中難免不妥之處,敬請廣大讀者不吝賜教。
目錄
第1章緒論1
1.1.1TCP/IP的起源2
1.1.2TCP/IP的體系結構和特點3
1.2網路編程的重要術語4
1.2.1套接字及其類型4
1.2.2網間進程通信的標識6
1.2.3客戶機/伺服器模式6
1.3C#網路編程概述8
1.3.1常用的網路組件9
1.3.2尋找IP位址的類和方法10
1.3.3數據流的類型與套用11
1.4套接字編程原理16
1.4.1面向連線的套接字調用流程16
1.4.2無連線套接字調用流程16
1.4.3Socket類的基本使用18
1.4.4套接字的簡單套用實例22
小結23
實驗項目23
第2章主機掃描程式設計25
2.1活動主機探測技術25
2.1.2基於ICMP的探測原理28
2.1.3活動主機探測程式設計29
2.2連線埠掃描技術34
2.2.1連線埠掃描器352.2.2連線埠掃描技術分類36
2.3.1流程設計40
2.3.2程式實現40
2.4高級連線埠掃描程式設計44
2.4.1界面設計45
2.4.2程式實現45
小結57
實驗項目57
第3章串口通信程式設計59
3.1串口通信基本原理和套用方法59
3.1.1串口通信原理59
3.1.2串口通信仿真設計方法63
3.2串口通信編程類介紹64
3.2.1SerialPort類介紹65
3.2.2SerialPort的使用66
3.2.3C# SerialPort運行方式 66
3.3串口通信編程實例67
3.3.1串口通信參數設定68
3.3.2主程式設計69
3.3.3串口通信程式測試74
小結75
實驗項目75
4.1TCP協定介紹76
4.1.1TCP數據包格式77
4.1.2TCP協定的通信特點77
4.1.3TCP的常見連線埠78
4.2.1典型的阻塞模式78
4.2.2阻塞模式的特點79
4.2.3阻塞模式的效率提升方法80
4.2.4非阻塞模式及其套用81
4.3同步套接字編程技術82
4.3.1伺服器的程式設計82
4.3.2客戶機的程式設計87
4.4異步套接字編程技術91
4.4.1客戶機發出連線請求91
4.4.2伺服器接收連線請求91
4.4.3伺服器傳送和接收數據92
4.5基於TcpClient類和TcpListener類的編程94
4.5.1TcpClient類的使用方法94
4.5.2TcpListener類的使用方法95
4.6網路遊戲程式設計96
小結107
實驗項目108
第5章基於UDP協定的程式設計109
5.1UDP協定介紹109
5.1.1UDP數據包格式110
5.1.2UDP協定的主要特性110
5.2使用UdpClient類進行編程111
5.2.1UdpClient類的使用方法111
5.2.2UdpClient類的套用實例113
5.3網路廣播程式設計115
5.3.1廣播程式設計示例116
5.3.2套接字選項設定方法118
5.4多播程式設計119
5.4.1多播地址119
5.4.3多播編程方法121
5.4.4多播編程實例123
小結126
實驗項目127
第6章遠程螢幕監視程式設計128
6.1螢幕捕獲過程解析128
6.2螢幕捕獲程式設計130
6.3基於遠程調用信道的遠程螢幕監視程式設計134
6.3.1遠程調用信道及其套用134
6.3.2基於遠程調用信道的螢幕傳輸程式設計140
6.4基於TCP協定的遠程螢幕監視程式設計144
6.4.1控制端144
6.4.2客戶端145
小結148
實驗項目149
第7章木馬程式設計150
7.1木馬工作原理150
7.1.1木馬系統的組成151
7.1.2木馬的功能和特徵151
7.1.3木馬的傳播與運行152
7.2木馬程式的常規設計153
7.2.1功能設計153
7.2.2流程圖設計153
7.2.3命令規則設計表153
7.2.4檔案操控模組流程155
7.2.5運行界面及說明155
7.2.6主要程式說明157
7.3鍵盤滑鼠控制程式設計161
7.3.1BlockInput()的使用方法161
7.3.2鍵盤鉤子說明161
7.3.3鍵盤滑鼠的網路控制程式設計163
小結169
實驗項目169
第8章IP音頻網路通信程式設計170
8.1音頻編程方法概述170
8.2基於多媒體控制項的音頻播放程式設計171
8.3DirectX組件的工作原理173
8.3.1DirectX簡介173
8.3.2DirectSound簡介175
8.3.3聲音的播放過程176
8.4基於DirectX組件的IP語音網路程式設計177
8.4.1利用DirectX組件實現音頻播放177
8.4.2利用DirectX組件實現音頻採集178
8.4.3基於DirectX組件的IP電話程式設計186
8.5基於低級音頻函式的IP電話程式設計195
8.5.1低級音頻函式的調用方法195
8.5.2利用低級音頻函式實現音頻採集與播放199
8.5.3利用低級音頻函式實現語音通信程式設計207
小結209
實驗項目209
第9章網路視頻傳輸程式設計211
9.1視頻編碼技術211
9.1.1視頻編碼分類211
9.1.2視頻格式轉換214
9.2基於VFW的視頻採集與存儲215
9.2.1VFW介紹215
9.2.2視頻數據處理技術216
9.2.3視頻監控程式設計221
9.3基於VFW的視頻傳輸224
9.3.1視頻傳輸流程224
9.3.2視頻傳送端程式設計226
9.3.3視頻接收端程式設計229
小結232
實驗項目232
第10章Email服務程式設計233
10.1概述233
10.1.1工作原理233
10.1.2相關的協定235
10.2.1SMTP的指令與回響碼236
10.2.2Email的組成237
10.2.3ESMTP的工作流程238
10.2.4ESMTP協定編程實例239
10.3POP3協定編程243
10.3.1POP3的工作流程243
10.3.2POP3協定編程245
10.4利用SmtpMail類傳送Email250
10.4.1System.Web.Mail介紹250
10.4.2處理Email信息及附屬檔案252
10.4.3Email傳送方法253
10.5利用JMail類收發Email254
10.5.1JMail組件的特點254
10.5.2JMail組件的主要參數與使用方法254
10.5.3基於JMail組件的Email傳送編程257
10.5.4基於JMail組件的Email接收編程258
小結260
實驗項目260
第11章FTP服務程式設計262
11.1FTP工作原理262
11.1.1FTP服務的工作原理262
11.1.2FTP的傳輸模式263
11.1.3FTP的登錄方式264
11.2FTP協定規範264
11.2.1FTP命令264
11.2.2FTP回響碼265
11.2.3FTP命令和回響碼的套用方法267
11.3FTP協定的兩種工作模式268
11.3.1FTP PORT模式(主動模式)268
11.3.2FTP PASV模式(被動模式)269
11.3.3兩種模式的比較270
11.4基於Socket類的FTP程式設計271
11.5基於TcpClient類的FTP程式設計288
11.5.1傳送與接受數據的方法288
11.5.2伺服器程式290
11.5.3客戶機程式291
小結295
實驗項目295
第12章網路測量程式設計297
12.1網路測量概述297
12.1.1網路測量的分類298
12.1.2網路測量的研究方向299
12.1.3網路測量工具300
12.2網路測量技術303
12.2.1主要測量指標303
12.2.2時延計算305
12.2.3ICMP時間戳請求與應答307
12.3網站可達性測量程式設計308
12.3.1網站測量概述308
12.3.2系統設計思路309
12.3.4程式實現311
小結324
實驗項目324
第13章網路信息加密傳輸程式設計325
13.1數據加密模型325
13.1.1數據加密工作模型326
13.1.2對稱加密模型326
13.1.3非對稱加密模型327
13.1.4數字簽名模型328
13.2對稱加密程式設計330
13.2.2基於流的加密解密方法331
13.2.3對稱加密程式設計實例334
13.3非對稱加密程式設計337
13.4網路信息加密傳輸程式設計345
13.4.1伺服器的實現345
13.4.2客戶機的實現353
小結360
實驗項目360
第14章網路信息隱藏通信程式設計361
14.1LSB信息隱藏方法361
14.2基於LSB的檔案隱藏傳輸程式設計363
14.2.1設計思路363
14.2.2信息同步技術364
14.2.3LSB的改進算法設計365
14.2.4主要代碼實現365
14.3IP語音隱秘通信程式設計372
14.3.1設計思路372
14.3.2傳送端關鍵代碼373
14.3.3接收端關鍵代碼375
14.4網頁信息隱藏程式設計377
14.4.1網頁入侵檢測的工作原理377
14.4.2網頁入侵檢測系統的設計377