《網路編程實用教程(第2版)》是2010年出版的圖書,作者是葉樹華 。
本書主要介紹基於TCP/IP協定棧的套接字網路編程技術。全書分為10章,第1章介紹網路編程基礎,第2章介紹套接字網路編程接口,第3章介紹Windows環境的網路編程,第4章介紹MFC編程,第5章介紹MFC WinSock類的編程,第6章介紹WinInet編程,第7章介紹WinSock的多執行緒編程,第8章介紹WinSock的輸入/輸出模型,第9章介紹HTTP及高級編程,第10章介紹電子郵件協定與編程。各章後都配有習題,便於讀者理解掌握所學內容。 本書可作為高等學校相關專業高年級本科生和研究生的教材,也可供其他技術人員參考。
基本介紹
- 書名:網路編程實用教程(第2版)
- 又名:網路編程技術
- 作者:葉樹華
- 頁數:322 頁
- 定價:34.00元
- 裝幀:平裝
- 開本:16 開
人民郵電出版社教材,內容提要,目錄,
人民郵電出版社教材
書 名 網路編程實用教程(第2版)
叢 書 名 21世紀高等學校計算機規劃教材——高校系列
標準書號 ISBN 978-7-115-21976-3
作 者 葉樹華 編著
責任編輯 鄒文波
開 本 16 開
印 張 20.75
字 數 518 千字
頁 數 322 頁
裝 幀 平裝
版 次 第2版第1次
二版時間 2010年2月
本 印 次 2010年2月
首 印 數 3000 冊
定 價 34.00 元
叢 書 名 21世紀高等學校計算機規劃教材——高校系列
標準書號 ISBN 978-7-115-21976-3
作 者 葉樹華 編著
責任編輯 鄒文波
開 本 16 開
印 張 20.75
字 數 518 千字
頁 數 322 頁
裝 幀 平裝
版 次 第2版第1次
二版時間 2010年2月
本 印 次 2010年2月
首 印 數 3000 冊
定 價 34.00 元
內容提要
本書可作為高等學校相關專業高年級本科生和研究生的教材,也可供其他技術人員參考。
目錄
第1章 網路編程基礎 1
1.1 網路編程相關的基本概念 1
1.1.1 網路編程與進程通信 1
1.1.2 Internet中網間進程的標識 3
1.1.3 網路協定的特徵 7
1.1.4 高效的用戶數據報協定 10
1.1.5 可靠的傳輸控制協定 10
1.2 三類網路編程 12
1.2.1 基於TCP/IP協定棧的網路編程 12
1.2.2 基於WWW套用的網路編程 12
1.2.3 基於.NET框架的Web Services網路編程 13
1.3 客戶機/伺服器互動模式 16
1.3.1 網路套用軟體的地位和功能 16
1.3.2 客戶機/伺服器模式 16
1.3.3 客戶機與伺服器的特性 17
1.3.4 容易混淆的術語 18
1.3.5 客戶機與伺服器的通信過程 19
1.3.6 網路協定與C/S模式的關係 19
1.3.7 錯綜複雜的C/S互動 19
1.3.8 伺服器如何同時為多個客戶機服務 21
1.3.9 標識一個特定服務 22
1.4 P2P模式 23
1.4.1 P2P技術的興起 23
1.4.2 P2P的定義和特徵 23
1.4.3 P2P的發展 24
1.4.4 P2P的關鍵技術 24
1.4.5 P2P系統的套用與前景 25
習題 25
1.1 網路編程相關的基本概念 1
1.1.1 網路編程與進程通信 1
1.1.2 Internet中網間進程的標識 3
1.1.3 網路協定的特徵 7
1.1.4 高效的用戶數據報協定 10
1.1.5 可靠的傳輸控制協定 10
1.2 三類網路編程 12
1.2.1 基於TCP/IP協定棧的網路編程 12
1.2.2 基於WWW套用的網路編程 12
1.2.3 基於.NET框架的Web Services網路編程 13
1.3 客戶機/伺服器互動模式 16
1.3.1 網路套用軟體的地位和功能 16
1.3.2 客戶機/伺服器模式 16
1.3.3 客戶機與伺服器的特性 17
1.3.4 容易混淆的術語 18
1.3.5 客戶機與伺服器的通信過程 19
1.3.6 網路協定與C/S模式的關係 19
1.3.7 錯綜複雜的C/S互動 19
1.3.8 伺服器如何同時為多個客戶機服務 21
1.3.9 標識一個特定服務 22
1.4 P2P模式 23
1.4.1 P2P技術的興起 23
1.4.2 P2P的定義和特徵 23
1.4.3 P2P的發展 24
1.4.4 P2P的關鍵技術 24
1.4.5 P2P系統的套用與前景 25
習題 25
第2章 套接字網路編程接口基礎 27
2.1 套接字網路編程接口的產生與發展 27
2.1.1 問題的提出 27
2.1.2 套接字編程接口起源於UNIX作業系統 28
2.1.3 套接字編程接口在Windows和Linux作業系統中得到繼承和發展 28
2.1.4 套接字編程接口的兩種實現方式 28
2.1.5 套接字通信與UNIX作業系統的輸入/輸出的關係 29
2.2 套接字編程的基本概念 30
2.2.1 什麼是套接字 30
2.2.2 套接字的特點 31
2.2.3 套接字的套用場合 33
2.2.4 套接字使用的數據類型和相關的問題 33
2.3 面向連線的套接字編程 35
2.3.1 套接字的工作過程 35
2.3.2 套接字編程接口的系統調用 37
2.3.3 面向連線的套接字編程實例 42
2.3.4 進程的阻塞問題和對策 47
2.4 無連線的套接字編程 50
2.4.1 無連線的套接字編程的兩種模式 50
2.4.2 兩個專用的系統調用 52
2.4.3 數據報套接字的對等模式編程實例 53
2.5 原始套接字 55
2.5.1 原始套接字的創建 55
2.5.2 原始套接字的使用 56
2.5.3 原始套接字套用實例 57
2.6 Linux系統的網路編程接口 59
2.6.1 數據結構 60
2.6.2 主要系統調用 60
習題 64
2.1 套接字網路編程接口的產生與發展 27
2.1.1 問題的提出 27
2.1.2 套接字編程接口起源於UNIX作業系統 28
2.1.3 套接字編程接口在Windows和Linux作業系統中得到繼承和發展 28
2.1.4 套接字編程接口的兩種實現方式 28
2.1.5 套接字通信與UNIX作業系統的輸入/輸出的關係 29
2.2 套接字編程的基本概念 30
2.2.1 什麼是套接字 30
2.2.2 套接字的特點 31
2.2.3 套接字的套用場合 33
2.2.4 套接字使用的數據類型和相關的問題 33
2.3 面向連線的套接字編程 35
2.3.1 套接字的工作過程 35
2.3.2 套接字編程接口的系統調用 37
2.3.3 面向連線的套接字編程實例 42
2.3.4 進程的阻塞問題和對策 47
2.4 無連線的套接字編程 50
2.4.1 無連線的套接字編程的兩種模式 50
2.4.2 兩個專用的系統調用 52
2.4.3 數據報套接字的對等模式編程實例 53
2.5 原始套接字 55
2.5.1 原始套接字的創建 55
2.5.2 原始套接字的使用 56
2.5.3 原始套接字套用實例 57
2.6 Linux系統的網路編程接口 59
2.6.1 數據結構 60
2.6.2 主要系統調用 60
習題 64
第3章 Windows環境的網路編程 65
3.1 Windows Sockets規範 65
3.1.1 概述 65
3.1.2 Windows Sockets規範 66
3.1.3 WinSock規範與Berkeley套接口的區別 71
3.2 WinSock 1.1的庫函式 74
3.2.1 WinSock的註冊與註銷 74
3.2.2 WinSock的錯誤處理函式 77
3.2.3 主要的WinSock函式 79
3.2.4 WinSock的輔助函式 93
3.2.5 WinSock的信息查詢函式 95
3.2.6 WSAAsyncGetXByY類型的擴展函式 97
3.3 網路應用程式的運行環境 101
習題 103
3.1 Windows Sockets規範 65
3.1.1 概述 65
3.1.2 Windows Sockets規範 66
3.1.3 WinSock規範與Berkeley套接口的區別 71
3.2 WinSock 1.1的庫函式 74
3.2.1 WinSock的註冊與註銷 74
3.2.2 WinSock的錯誤處理函式 77
3.2.3 主要的WinSock函式 79
3.2.4 WinSock的輔助函式 93
3.2.5 WinSock的信息查詢函式 95
3.2.6 WSAAsyncGetXByY類型的擴展函式 97
3.3 網路應用程式的運行環境 101
習題 103
第4章 MFC編程 104
4.1 MFC概述 104
4.1.1 MFC是一個編程框架 104
4.1.2 典型的MDI應用程式的構成 106
4.2 MFC和Win32 108
4.2.1 MFC對象和Windows對象的關係 108
4.2.2 幾個主要的類 110
4.3 Cobject類 114
4.3.1 CObject類的定義 114
4.3.2 CObject類的特性 116
4.4 訊息映射的實現 117
4.5 MFC對象的創建 121
4.5.1 MFC對象的關係 121
4.5.2 MFC提供的接口 123
4.5.3 MFC對象的創建過程 123
4.6 應用程式的退出 126
習題 127
4.1 MFC概述 104
4.1.1 MFC是一個編程框架 104
4.1.2 典型的MDI應用程式的構成 106
4.2 MFC和Win32 108
4.2.1 MFC對象和Windows對象的關係 108
4.2.2 幾個主要的類 110
4.3 Cobject類 114
4.3.1 CObject類的定義 114
4.3.2 CObject類的特性 116
4.4 訊息映射的實現 117
4.5 MFC對象的創建 121
4.5.1 MFC對象的關係 121
4.5.2 MFC提供的接口 123
4.5.3 MFC對象的創建過程 123
4.6 應用程式的退出 126
習題 127
第5章 MFC WinSock類的編程 128
5.1 CAsyncSocket類 129
5.1.1 使用CAsyncSocket類的一般步驟 129
5.1.2 創建CAsyncSocket類對象 130
5.1.3 關於CAsyncSocket類可以接受並處理的訊息事件 131
5.1.4 客戶機端套接字對象請求連線到伺服器端套接字對象 133
5.1.5 伺服器接收客戶機的連線請求 134
5.1.6 傳送與接收流式數據 135
5.1.7 關閉套接字 137
5.1.8 錯誤處理 137
5.1.9 其他的成員函式 138
5.2 CSocket類 139
5.2.1 創建CSocket對象 139
5.2.2 建立連線 139
5.2.3 傳送和接收數據 139
5.2.4 CSocket類、CArchive類和CSocketFile類 140
5.2.5 關閉套接字和清除相關的對象 141
5.3 CSocket類的編程模型 141
5.4 CAsyncSocket類的套用實例 142
5.4.1 實現目標 142
5.4.2 創建客戶機端應用程式 143
5.4.3 客戶機端程式的類與訊息驅動 151
5.4.4 客戶機端程式主要功能的代碼和分析 152
5.4.5 創建伺服器端程式 159
5.4.6 伺服器端程式的流程和訊息驅動 161
5.4.7 點對點交談的伺服器端程式主要功能的代碼和分析 162
5.5 用CSocket類實現的聊天室程式 167
5.5.1 聊天室程式的功能 167
5.5.2 創建聊天室的伺服器端程式 168
5.5.3 聊天室伺服器端程式的主要實現代碼和分析 170
5.5.4 創建聊天室的客戶機端程式 178
5.5.5 聊天室客戶機端程式的主要實現代碼和分析 180
習題 187
5.1 CAsyncSocket類 129
5.1.1 使用CAsyncSocket類的一般步驟 129
5.1.2 創建CAsyncSocket類對象 130
5.1.3 關於CAsyncSocket類可以接受並處理的訊息事件 131
5.1.4 客戶機端套接字對象請求連線到伺服器端套接字對象 133
5.1.5 伺服器接收客戶機的連線請求 134
5.1.6 傳送與接收流式數據 135
5.1.7 關閉套接字 137
5.1.8 錯誤處理 137
5.1.9 其他的成員函式 138
5.2 CSocket類 139
5.2.1 創建CSocket對象 139
5.2.2 建立連線 139
5.2.3 傳送和接收數據 139
5.2.4 CSocket類、CArchive類和CSocketFile類 140
5.2.5 關閉套接字和清除相關的對象 141
5.3 CSocket類的編程模型 141
5.4 CAsyncSocket類的套用實例 142
5.4.1 實現目標 142
5.4.2 創建客戶機端應用程式 143
5.4.3 客戶機端程式的類與訊息驅動 151
5.4.4 客戶機端程式主要功能的代碼和分析 152
5.4.5 創建伺服器端程式 159
5.4.6 伺服器端程式的流程和訊息驅動 161
5.4.7 點對點交談的伺服器端程式主要功能的代碼和分析 162
5.5 用CSocket類實現的聊天室程式 167
5.5.1 聊天室程式的功能 167
5.5.2 創建聊天室的伺服器端程式 168
5.5.3 聊天室伺服器端程式的主要實現代碼和分析 170
5.5.4 創建聊天室的客戶機端程式 178
5.5.5 聊天室客戶機端程式的主要實現代碼和分析 180
習題 187
第6章 WinInet編程 188
6.1 MFC WinInet類 188
6.1.1 概述 188
6.1.2 MFC WinInet所包含的類 189
6.1.3 使用WinInet類編程的一般步驟 190
6.1.4 創建CInternetSession類對象 191
6.1.5 查詢或設定Internet請求選項 192
6.1.6 創建連線類對象 193
6.1.7 使用檔案檢索類 194
6.1.8 重載OnStatusCallback函式 195
6.1.9 創建並使用網路檔案類對象 197
6.1.10 CInternteException類 199
6.2 MFC WinInet類應用程式編程實例 199
6.2.1 程式要實現的功能 200
6.2.2 創建應用程式的過程 201
習題 203
6.1 MFC WinInet類 188
6.1.1 概述 188
6.1.2 MFC WinInet所包含的類 189
6.1.3 使用WinInet類編程的一般步驟 190
6.1.4 創建CInternetSession類對象 191
6.1.5 查詢或設定Internet請求選項 192
6.1.6 創建連線類對象 193
6.1.7 使用檔案檢索類 194
6.1.8 重載OnStatusCallback函式 195
6.1.9 創建並使用網路檔案類對象 197
6.1.10 CInternteException類 199
6.2 MFC WinInet類應用程式編程實例 199
6.2.1 程式要實現的功能 200
6.2.2 創建應用程式的過程 201
習題 203
第7章 WinSock的多執行緒編程 204
7.1 WinSock為什麼需要多執行緒編程 204
7.1.1 WinSock的兩種I/O模式 204
7.1.2 兩種模式的優缺點及解決方法 205
7.2 Win32作業系統下的多進程多執行緒機制 205
7.2.1 Win32 OS是單用戶多任務的作業系統 205
7.2.2 Win32 OS是支持多執行緒的作業系統 206
7.2.3 多執行緒機制在網路編程中的套用 207
7.3 VC++6.0對多執行緒網路編程的支持 208
7.3.1 MFC支持的兩種執行緒 208
7.3.2 創建MFC的工作執行緒 209
7.3.3 創建並啟動用戶界面執行緒 211
7.3.4 終止執行緒 214
7.4 多執行緒網路編程的例子 216
7.4.1 編寫執行緒函式 217
7.4.2 添加事件處理函式 222
習題 224
7.1 WinSock為什麼需要多執行緒編程 204
7.1.1 WinSock的兩種I/O模式 204
7.1.2 兩種模式的優缺點及解決方法 205
7.2 Win32作業系統下的多進程多執行緒機制 205
7.2.1 Win32 OS是單用戶多任務的作業系統 205
7.2.2 Win32 OS是支持多執行緒的作業系統 206
7.2.3 多執行緒機制在網路編程中的套用 207
7.3 VC++6.0對多執行緒網路編程的支持 208
7.3.1 MFC支持的兩種執行緒 208
7.3.2 創建MFC的工作執行緒 209
7.3.3 創建並啟動用戶界面執行緒 211
7.3.4 終止執行緒 214
7.4 多執行緒網路編程的例子 216
7.4.1 編寫執行緒函式 217
7.4.2 添加事件處理函式 222
習題 224
第8章 WinSock的I/O模型 225
8.1 select模型 226
8.2 WSAAsyncSelect異步I/O模型 228
8.3 WSAEventSelect事件選擇模型 232
8.4 重疊I/O模型 237
8.4.1 重疊I/O模型的優點 237
8.4.2 重疊I/O模型的基本原理 238
8.4.3 重疊I/O模型的關鍵函式和數據結構 238
8.4.4 使用事件通知實現重疊模型的步驟 241
8.4.5 使用完成例程實現重疊模型的步驟 243
8.5 完成連線埠模型 245
8.5.1 什麼是完成連線埠模型 245
8.5.2 使用完成連線埠模型的方法 246
習題 254
8.1 select模型 226
8.2 WSAAsyncSelect異步I/O模型 228
8.3 WSAEventSelect事件選擇模型 232
8.4 重疊I/O模型 237
8.4.1 重疊I/O模型的優點 237
8.4.2 重疊I/O模型的基本原理 238
8.4.3 重疊I/O模型的關鍵函式和數據結構 238
8.4.4 使用事件通知實現重疊模型的步驟 241
8.4.5 使用完成例程實現重疊模型的步驟 243
8.5 完成連線埠模型 245
8.5.1 什麼是完成連線埠模型 245
8.5.2 使用完成連線埠模型的方法 246
習題 254
第9章 HTTP及高級編程 255
9.1 HTTP 255
9.1.1 HTTP的背景 255
9.1.2 HTTP的內容 256
9.1.3 HTTP訊息的一般格式 257
9.1.4 HTTP請求的格式 258
9.1.5 HTTP回響的格式 261
9.1.6 訪問認證 264
9.1.7 URL編碼 265
9.1.8 HTTP的套用 266
9.2 利用CHtmlView類創建Web瀏覽器型的應用程式 266
9.2.1 CHtmlView類與WebBrowser控制項 266
9.2.2 CHtmlView類的成員函式 267
9.2.3 創建一個Web瀏覽器型的應用程式的一般步驟 272
9.3 Web瀏覽器應用程式實例 277
9.3.1 程式實現的目標 277
9.3.2 創建實例程式 278
習題 281
9.1 HTTP 255
9.1.1 HTTP的背景 255
9.1.2 HTTP的內容 256
9.1.3 HTTP訊息的一般格式 257
9.1.4 HTTP請求的格式 258
9.1.5 HTTP回響的格式 261
9.1.6 訪問認證 264
9.1.7 URL編碼 265
9.1.8 HTTP的套用 266
9.2 利用CHtmlView類創建Web瀏覽器型的應用程式 266
9.2.1 CHtmlView類與WebBrowser控制項 266
9.2.2 CHtmlView類的成員函式 267
9.2.3 創建一個Web瀏覽器型的應用程式的一般步驟 272
9.3 Web瀏覽器應用程式實例 277
9.3.1 程式實現的目標 277
9.3.2 創建實例程式 278
習題 281
第10章 電子郵件協定與編程 282
10.1 電子郵件系統的工作原理 282
10.1.1 電子郵件的特點 282
10.1.2 電子郵件系統的構成 282
10.1.3 電子郵件系統的實現 283
10.2 簡單郵件傳送協定 285
10.2.1 概述 285
10.2.2 SMTP客戶機與SMTP伺服器之間的會話 285
10.2.3 常用的SMTP命令 286
10.2.4 常用的SMTP回響碼 288
10.2.5 SMTP的會話過程 289
10.2.6 使用WinSock來實現電子郵件客戶機與伺服器的會話 289
10.3 電子郵件信件結構詳述 290
10.3.1 Internet文本信件的格式標準——RFC 822 290
10.3.2 信件的頭部 291
10.3.3 構造和分析符合RFC 822標準的電子信件 296
10.4 MIME編碼解碼與傳送附屬檔案 296
10.4.1 MIME概述 296
10.4.2 MIME定義的新的信頭欄位 297
10.4.3 MIME郵件的內容類型 298
10.4.4 MIME郵件的編碼方式 307
10.5 POP3與接收電子郵件 309
10.5.1 POP3 309
10.5.2 POP3的會話過程 310
10.5.3 POP3會話的3個狀態 311
10.5.4 POP3標準命令 311
10.5.5 接收電子郵件的一般步驟 314
10.6 接收電子郵件的程式實例 315
10.6.1 實例程式的目的和實現的技術要點 315
10.6.2 創建應用程式的過程 316
10.7 傳送電子郵件的程式實例 318
10.7.1 實例程式的目的和實現的技術要點 318
10.7.2 創建應用程式的過程 319
習題 321
10.1 電子郵件系統的工作原理 282
10.1.1 電子郵件的特點 282
10.1.2 電子郵件系統的構成 282
10.1.3 電子郵件系統的實現 283
10.2 簡單郵件傳送協定 285
10.2.1 概述 285
10.2.2 SMTP客戶機與SMTP伺服器之間的會話 285
10.2.3 常用的SMTP命令 286
10.2.4 常用的SMTP回響碼 288
10.2.5 SMTP的會話過程 289
10.2.6 使用WinSock來實現電子郵件客戶機與伺服器的會話 289
10.3 電子郵件信件結構詳述 290
10.3.1 Internet文本信件的格式標準——RFC 822 290
10.3.2 信件的頭部 291
10.3.3 構造和分析符合RFC 822標準的電子信件 296
10.4 MIME編碼解碼與傳送附屬檔案 296
10.4.1 MIME概述 296
10.4.2 MIME定義的新的信頭欄位 297
10.4.3 MIME郵件的內容類型 298
10.4.4 MIME郵件的編碼方式 307
10.5 POP3與接收電子郵件 309
10.5.1 POP3 309
10.5.2 POP3的會話過程 310
10.5.3 POP3會話的3個狀態 311
10.5.4 POP3標準命令 311
10.5.5 接收電子郵件的一般步驟 314
10.6 接收電子郵件的程式實例 315
10.6.1 實例程式的目的和實現的技術要點 315
10.6.2 創建應用程式的過程 316
10.7 傳送電子郵件的程式實例 318
10.7.1 實例程式的目的和實現的技術要點 318
10.7.2 創建應用程式的過程 319
習題 321
參考文獻 322