Windows網路編程

Windows網路編程

《Windows網路編程》是2011年人民郵電出版社出版的圖書,作者是羅莉琴、詹祖橋。本書可以作為大學本科、大專及高職相關專業的教材,也可作為廣大Windows網路應用程式開發人員的參考資料。

內容簡介

隨著Internet技術的套用和普及,人類社會已經進入了信息化的網路時代。大多數應用程式都是運行在網路環境下,這就要求程式設計師能夠在套用最廣泛的Windows作業系統上開發網路應用程式。本教程結合大量的實例,介紹了開發Windows網路應用程式的必備知識,並完整地講述了幾個Windows網路應用程式實例的開發過程。這些實例包括區域網路探測器、基於P2P技術的BT下載工具和基於WinPcap技術的網路數據包捕獲、過濾和分析工具等。

圖書目錄

第1篇 基礎協定

第1章 Internet與網路通信模型概述 1

1.1 Internet概述 1

1.1.1 Internet的發展歷史 1

1.1.2 Internet的管理機構 3

1.1.3 國內Internet網路建設的現狀 5

1.2 網路通信模型和協定簇 6

1.2.1 OSI參考模型 6

1.2.2 TCP/IP協定簇體系結構 11

習題 12

第2章 TCP/IP協定簇及其套用 14

2.1 IP 14

2.1.1 IP基礎 14

2.1.2 IP的關鍵機制 16

2.2 TCP和UDP 17

2.2.1 TCP的網路功能 17

2.2.2 TCP段結構 18

2.2.3 TCP的基本工作流程 20

2.2.4 UDP 22

2.3 其他常用協定 23

2.3.1 ARP 23

2.3.2 ICMP 26

2.3.3 Telnet 28

2.3.4 FTP 29

2.3.5 SMTP和POP3 31

習題 32

第3章 IP位址和子網規劃 34

3.1 IP位址 34

3.1.1 IP位址的結構 34

3.1.2 IP位址的分類 35

3.1.3 特殊的IP位址 37

3.2 子網劃分 38

3.2.1 子網 38

3.2.2 子網掩碼 39

3.2.3 CIDR表示法 45

3.2.4 單播、組播和廣播地址 46

習題 49

第2篇 網路編程

第4章 網路編程基礎 50

4.1 網路編程相關的基本概念 50

4.1.1 網路編程與進程通信 50

4.1.2 Internet中網間進程的標識 53

4.1.3 網路協定的特徵 56

4.1.4 高效的用戶數據報協定 59

4.1.5 可靠的傳輸控制協定 59

4.2 三類網路編程 61

4.2.1 基於TCP/IP協定棧的網路編程 61

4.2.2 基於WWW套用的網路編程 62

4.2.3 基於.NET框架的Web Services網路編程 62

4.3 客戶機/伺服器互動模式 65

4.3.1 網路套用軟體的地位和功能 65

4.3.2 客戶機/伺服器模式 66

4.3.3 客戶機與伺服器的特性 67

4.3.4 容易混淆的術語 67

4.3.5 客戶機與伺服器的通信過程 68

4.3.6 網路協定與C/S模式的關係 69

4.3.7 錯綜複雜的C/S互動 69

4.3.8 伺服器如何同時為多個客戶機服務 70

4.3.9 標識一個特定服務 71

4.4 P2P模式 72

4.4.1 P2P技術的興起 72

4.4.2 P2P的定義和特徵 73

4.4.3 P2P的發展 73

4.4.4 P2P的關鍵技術 74

4.4.5 P2P系統的套用與前景 74

習題 75

第5章 Socket編程基礎 76

5.1 Socket網路編程接口的產生與發展 76

5.1.1 Socket編程接口起源於UNIX作業系統 76

5.1.2 Socket編程接口在Windows和Linux作業系統中得到繼承和發展 77

5.2 Socket的工作原理和基本概念 77

5.2.1 Socket協定的工作原理 77

5.2.2 什麼是Socket 78

5.2.3 Socket的服務方式和類型 78

5.3 WinSock編程基礎 79

5.3.1 構建WinSock應用程式框架 79

5.3.2 IP位址的表示形式 82

5.4 面向連線的Socket編程 84

5.4.1 面向連線的Socket通信流程 84

5.4.2 socket()函式 85

5.4.3 bind()函式 86

5.4.4 listen()函式 87

5.4.5 accept()函式 88

5.4.6 recv()函式 90

5.4.7 send()函式 91

5.4.8 closesocket()函式 93

5.4.9 shutdown()函式 94

5.4.10 connect()函式 94

5.4.11 TCP Socket伺服器應用程式編程實例 95

5.4.12 TCP Socket客戶端應用程式編程實例 100

5.5 面向非連線的Socket編程 104

5.5.1 面向非連線的Socket通信流程 104

5.5.2 sendto()函式 105

5.5.3 recvfrom()函式 106

5.6 Socket選項 108

5.6.1 調用getsockopt()函式獲取Socket選項 108

5.6.2 調用setsockopt()函式設定Socket選項 111

習題 113

第6章 探測網路中的線上設備 114

6.1 獲取本地計算機的網路信息 114

6.1.1 使用ipconfig命令獲取本地網路信息 114

6.1.2 獲取本地網路信息的開發接口IP Helper API 115

6.1.3 獲取本地網路適配器信息 116

6.1.4 獲取本地主機名、域名和DNS伺服器信息 120

6.1.5 獲取本地計算機網路接口的基本信息 124

6.1.6 獲取本地計算機IP位址表 127

6.1.7 添加和刪除IP位址 130

6.2 掃描子網中的地址 135

6.2.1 計算指定子網內包含的所有IP位址 135

6.2.2 實現ping的功能 139

6.2.3 掃描子網 146

習題 154

第7章 NetBIOS網路編程技術 156

7.1 NetBIOS協定及套用 156

7.1.1 NetBIOS協定 156

7.1.2 使用NBTSTAT命令 159

7.2 NetBIOS開發接口 160

7.2.1 NetBIOS操作 160

7.2.2 NCB結構體 161

7.2.3 其他常用NetBIOS結構體 165

7.2.4 Netbios()函式 167

7.2.5 獲取LANA上的所有NetBIOS名字 168

7.2.6 獲取網路適配器上的MAC地址 172

7.3 在程式中實現NBTSTAT命令的功能 174

7.3.1 本實例的工作原理 174

7.3.2 定義的結構體 175

7.3.3 為獲取NetBIOS信息而定義的函式 175

7.3.4 實現NBTSTAT命令功能的主函式 180

習題 181

第8章 高級Socket編程技術 182

8.1 Socket編程模型概述 182

8.2 阻塞與非阻塞模式Socket編程 184

8.2.1 設定非阻塞模式Socket 184

8.2.2 非阻塞模式伺服器應用程式編程實例 185

8.2.3 非阻塞模式客戶端應用程式編程實例 189

8.2.4 基於非阻塞模式的多執行緒伺服器應用程式編程實例 192

8.3 基於Select模型的Socket編程 195

8.3.1 select()函式 195

8.3.2 基於Select模型的伺服器應用程式實例 196

8.4 基於WSAAsyncSelect模型的Socket編程 203

8.4.1 WSAAsyncSelect()函式 203

8.4.2 創建視窗 204

8.4.3 視窗例程 207

8.4.4 基於WSAAsyncSelect模型的伺服器編程 208

8.5 基於WSAEventSelect模型的Socket編程 213

8.5.1 WSAEventSelect()函式 213

8.5.2 創建和管理事件對象 214

8.5.3 WSAWaitForMultipleEvents()函式 215

8.5.4 WSAEnumNetworkEvents()函式 216

8.5.5 基於WSAEventSelect模型的伺服器編程 216

8.6 基於重疊I/O模型的Socket編程 221

8.6.1 WSASocket()函式 221

8.6.2 調用WSASend()函式傳送數據 222

8.6.3 調用WSARecv()函式接收數據 223

8.6.4 GetOverlappedResult()函式 224

8.6.5 使用事件通知來管理重疊I/O操作 224

8.6.6 使用完成例程來管理重疊I/O操作 227

8.7 基於完成連線埠模型的Socket編程 231

8.7.1 完成連線埠模型的工作原理 231

8.7.2 創建完成連線埠對象 232

8.7.3 等待重疊I/O的操作結果 233

8.7.4 基於完成連線埠模型的伺服器應用程式實例 234

習題 240

第9章 基於WinPcap技術的網路數據包捕獲、過濾和分析技術 242

9.1 WinPcap技術基礎 242

9.1.1 WinPcap的體系結構 242

9.1.2 NIC驅動器和NDIS 243

9.1.3 網路組包過濾(NPF)模組 244

9.1.4 捕獲數據包的原理和步驟 246

9.2 下載和安裝WinPcap開發包 247

9.2.1 下載WinPcap 247

9.2.2 安裝WinPcap 249

9.2.3 原始碼的目錄結構 250

9.3 在Visual C++中使用WinPcap技術 251

9.3.1 環境配置 251

9.3.2 獲取與網路適配器綁定的設備列表 252

9.3.3 獲取網路適配器的高級屬性信息 255

9.3.4 打開網路適配器並實現抓包功能 258

9.3.5 不使用事件處理器進行抓包 262

9.3.6 過濾數據包 265

9.3.7 分析數據包 266

習題 271

第3篇 實例套用

第10章 設計區域網路探測器 273

10.1 區域網路探測器的主要功能 273

10.2 基礎模組設計 274

10.2.1 基礎函式 274

10.2.2 本地主機類CLocalhost 277

10.2.3 設備類CDevice 279

10.2.4 子網類CSubnet 279

10.3 系統主界面設計 289

10.3.1 系統主界面中包含的控制項 289

10.3.2 設計選單項 290

10.4 載入和退出主界面 291

10.4.1 載入主界面的代碼實現 291

10.4.2 在文本編輯框中輸出描述信息 295

10.4.3 自動調整控制項的大小 296

10.4.4 退出系統並保存自定義子網 297

10.5 管理子網 297

10.5.1 添加和編輯子網 297

10.5.2 刪除子網 301

10.6 掃描指定的子網 302

10.6.1 設計執行掃描子網操作的對話框 303

10.6.2 啟動子網掃描 305

10.7 檢測子網的狀態 305

10.7.1 設計檢測子網狀態的對話框 306

10.7.2 啟動狀態檢測 308

第11章 設計基於P2P技術的BT下載工具 310

11.1 P2P技術的工作原理和套用 310

11.1.1 P2P技術的工作原理 310

11.1.2 P2P網路模型 312

11.1.3 BT下載 313

11.1.4 FTKernelAPI兼容BT協定網路核心庫 315

11.2 系統主界面設計 317

11.2.1 系統主界面中包含的控制項 317

11.2.2 設計選單項 318

11.2.3 設計工具列 318

11.3 載入主視窗 320

11.3.1 載入主視窗的代碼實現 321

11.3.2 在StartContext()函式中初始化FTKernelAPI環境 322

11.3.3 在InitNatTunnel()函式中初始化穿透區域網路的操作 326

11.4 實現BT下載 328

11.4.1 打開種子檔案 328

11.4.2 開始下載 337

11.4.3 停止下載 342

11.4.4 顯示下載進度 343

11.4.5 刪除檔案 347

11.4.6 打開目錄 348

相關詞條

相關搜尋

熱門詞條

聯絡我們