內容簡介
本書的特點是集原理、技術和套用於一體,重點突出網路的高級編程,講解網路編程中使用的技術、方法,以及網路程式設計的實例。主要內容包括網路程式設計基礎、基於套接字的編程方法、進程間的通信方法、Web伺服器程式設計、網路資料庫套用編程以及流媒體程式設計。本書每章末尾附有習題,供學生平時練習之用。
本書適合作為計算機專業本科及其他相關專業的網路應用程式設計教材,對於從事計算機套用和開發的技術人員也具有很高的參考價值。
目錄
第1章 網路編程概述 1
1.1 計算機網路概述 1
1.2 網路模型 3
1.2.1 ISO/OSI網路體系結構研究方法 3
1.2.2 ISO/OSI 參考模型 4
1.3 網路協定 5
1.3.1 網路協定層次 5
1.3.2 TCP/IP協定簇 6
1.4 網路編程模式與編程接口 13
1.4.1 客戶機/伺服器模式(C/S模式) 13
1.4.2 瀏覽器/伺服器模式(B/S模式) 14
1.4.3 編程接口 16
1.5 服務方式 16
1.6 編程基礎 17
1.6.1 Linux系統的基本術語 17
1.6.2 標識符 20
1.6.3 檔案 22
1.6.4 計算機網路基本術語 26
習題 28
第2章 基於TCP套接字的編程 29
2.1 概述 29
2.2 套接字和套接字地址 29
2.2.1 套接字 29
2.2.2 套接字地址 31
2.2.3 IP位址的使用 32
2.3 基本套接字函式 33
2.4 高級套接字函式 41
2.5 多路復用 51
2.6 網路位元組傳輸順序及主機位元組順序 52
2.6.1 網路位元組順序與主機位元組順序 52
2.6.2 位元組處理函式 53
2.7 DNS與域名訪問 54
2.7.1 域名系統 54
2.7.2 域名伺服器 56
2.8 基於IP和域名的通信編程 57
2.9 基於TCP套接字編程示例 59
習題 62
第3章 UDP套接字與原始套接字的編程 64
3.1 概述 64
3.2 UDP套接字編程 65
3.2.1 伺服器編程示例 66
3.2.2 UDP客戶機編程示例 68
3.3 連線UDP套接字的功能 70
3.4 UDP編程中的錯誤檢測及處理方法 71
3.5 UDP套接字在OICQ服務中的套用 74
3.6 原始套接字 77
3.6.1 原始套接字定義 77
3.6.2 ICMP協定中原始套接字的套用 78
3.6.3 IP_HDRINCL選項 82
3.7 伺服器編程模型 83
3.7.1 循環伺服器 83
3.7.2 並發伺服器 87
3.7.3 並發伺服器:多路復用I/O 94
習題 94
第4章 進程與信號機制 95
4.1 概述 95
4.2 信號 95
4.2.1 信號的產生 96
4.2.2 信號的類型及定義 96
4.2.3 可靠信號 99
4.2.4 實時信號與非實時信號 99
4.2.5 設定進程對信號的回響 99
4.3 進程間的關係及相互制約 102
4.3.1 進程的創建 102
4.3.2 進程的終止和父、子進程的同步 104
4.3.3 系統調用exec() 106
4.4 守護進程(daemon process) 107
4.4.1 守護進程的預處理 108
4.4.2 守護程式框架 110
4.4.3 inetd守護進程 112
習題 114
第5章 進程間通信及實現方法 115
5.1 管道 116
5.2 命名管道 120
5.3 訊息通信 123
5.4 共享記憶體 124
5.5 信號燈 127
5.6 UNIX域套接字 129
習題 136
第6章 帶外數據 137
6.1 TCP的帶外數據 137
6.2 帶外數據標誌 139
6.3 OOB傳輸套接字例程 141
6.4 TCP帶外數據特性 147
習題 148
第7章 阻塞式/非阻塞式I/O 149
7.1 I/O模型 149
7.1.1 產生阻塞的原因 149
7.1.2 產生阻塞的函式 150
7.2 阻塞函式的編程 157
7.2.1 阻塞式I/O的客戶機編程 158
7.2.2 阻塞式I/O的伺服器編程 167
7.3 非阻塞函式的編程 167
7.3.1 非阻塞式I/O的客戶機編程 168
7.3.2 非阻塞式I/O的伺服器編程 174
7.4 信號驅動I/O 177
7.5 本章小結 179
習題 179
第8章 Windows網路編程 181
8.1 Winsock編程接口 181
8.1.1 Winsock的發展 181
8.1.2 Winsock規範的組成及適用範圍 181
8.1.3 Winsock的主要特點 182
8.1.4 Winsock的啟動和終止 182
8.1.5 Winsock API函式 184
8.1.6 MFC Winsock簡介 201
8.2 Windows與Linux網路編程環境的異同 201
習題 202
第9章 基於Web瀏覽器的編程 203
9.1 關於Web服務 203
9.2 HTTP協定 204
9.3 HTML 210
9.4 Java 217
9.5 本章小結 222
習題 222
第10章 網路資料庫的訪問與套用 223
10.1 資料庫訪問技術 223
10.2 資料庫訪問方法 224
10.2.1 IDC概述 224
10.2.2 編程基礎 225
10.2.3 訪問資料庫 227
10.3 ODBC 228
10.3.1 ODBC概述 228
10.3.2 訪問資料庫 229
10.4 ADO和RDS 232
10.4.1 ADO概述 232
10.4.2 使用ADO訪問資料庫 234
10.4.3 RDS概述 235
10.4.4 使用RDS訪問資料庫 237
10.5 JDBC 238
10.5.1 JDBC概述 238
10.5.2 JDBC編程基礎 240
10.5.3 訪問資料庫 241
10.6 ADO.Net 242
10.6.1 ADO.Net概述 242
10.6.2 ADO.Net編程基礎 242
10.6.3 訪問資料庫 243
10.7 本章小結 244
習題 245
第11章 流媒體程式設計 246
11.1 流媒體的概念 246
11.2 流媒體技術的特點 246
11.3 流媒體類型 248
11.4 流媒體的技術基礎 249
11.4.1 單播、廣播與組播 249
11.4.2 RTP和RTCP協定 251
11.4.3 檔案壓縮與解壓 254
11.5 流式檔案的製作 255
11.5.1 準備工作 255
11.5.2 音頻檔案 258
11.5.3 視頻檔案 258
11.5.4 文本和圖像 259
11.5.5 SMIL語言 261
11.5.6 製作工具 263
11.6 流媒體的發布 268
11.7 本章小結 269
習題 269
附錄 270
參考文獻 279