編輯推薦
這是一部傳世之作!網絡編程專傢Bill Fenner和Andrew M. Rudoff應邀執筆,對W. Richard Stevens的經典作品進行修訂。書中吸納瞭近幾年網絡技術的發展,增添瞭IPv6、SCTP協議和密鑰管理套接字等內容,深入討論瞭新的關鍵標準、實現和技術。
書中的所有示例都是在UNIX係統上測試通過的真實的、可運行的代碼,繼承瞭Stevens一直強調的理念:“學習網絡編程的好方法就是下載這些程序,對其進行修改和改進。隻有這樣實際編寫代碼纔能深入理解有關概念和方法。”讀者可以從本書網站下載這些示例的源代碼。
本書為UNIX網絡編程提供全麵的指導,是網絡研究和開發人員公認的參考書,無論網絡編程的初學者還是網絡專傢都會大受裨益。
內容簡介
本書是一部UNIX網絡編程的經典之作。書中全麵深入地介紹瞭如何使用套接字API進行網絡編程。全書不但介紹瞭基本編程內容,還涵蓋瞭與套接字編程相關的高級主題,對於客戶/服務器程序的各種設計方法也作瞭完整的探討,還深入分析瞭流這種設備驅動機製。
本書內容詳盡,幾乎每章都提供精選的習題,並提供瞭部分習題的答案,是網絡研究和開發人員理想的參考書。
作者簡介
W. Richard Stevens(1951—1999) 國際知名的UNIX和網絡專傢,備受贊譽的技術作傢。生前著有《TCP/IP詳解》(三捲)、《UNIX環境高級編程》和《UNIX網絡編程》(兩捲),均為不朽的經典著作。
Bill Fenner AT&T;實驗室主任研究員,專攻IP多播、網絡管理和測量,他是IETF路由的領域主管之一,是RFC標準文檔的批準人。
Andrew M. Rudoff Sun公司軟件工程師,專攻網絡、操作係統內核、文件係統和高可用性軟件體係結構。
目錄
Part 1. Introduction and TCP/IP / 簡介和TCP/IP 1
Chapter 1. Introduction / 簡介 3
1.1 Introduction / 概述 3
1.2 A Simple Daytime Client / 一個簡單的時間獲取客戶程序 6
1.3 Protocol Independence / 協議無關性 10
1.4 Error Handling: Wrapper Functions / 錯誤處理:包裝函數 11
1.5 A Simple Daytime Server / 一個簡單的時間獲取服務器程序 13
1.6 Roadmap to Client/Server Examples in the Text / 本書中客戶/服務器示例的路綫圖 16
1.7 OSI Model / OSI模型 18
1.8 BSD Networking History / BSD網絡曆史 20
1.9 Test Networks and Hosts / 測試用網絡及主機 22
1.10 Unix Standards / Unix標準 25
1.11 64-Bit Architectures / 64位體係結構 28
1.12 Summary / 小結 29
Chapter 2. The Transport Layer: TOP, UDP, and SCTP / 傳輸層:TCP、UDP和SCTP 31
2.1 Introduction / 概述 31
2.2 The Big Picture / 全景圖 32
2.3 User Datagram Protocol (UDP) / 用戶數據報協議 34
2.4 Transmission Control Protocol (TCP) / 傳輸控製協議 35
2.5 Stream Control Transmission Protocol (SCTP) / 流控製傳輸協議 36
2.6 TCP Connection Establishment and Termination / TCP連接的建立和終止 37
2.7 TIME_WAIT State / TIME_WAIT狀態 43
2.8 SCTP Association Establishment and Termination / SCTP關聯的建立和終止 44
2.9 Port Numbers / 端口號 50
2.10 TCP Port Numbers and Concurrent Servers / TCP端口號與並發服務器 52
2.11 Buffer Sizes and Limitations / 緩衝區大小及限製 55
2.12 Standard Internet Services / 標準因特網服務 61
2.13 Protocol Usage by Common Internet Applications / 常見因特網應用所用的協議 62
2.14 Summary / 小結 63
Part 2. Elementary Sockets / 基本套接字 65
Chanter 3. Sockets Introduction / 套接字簡介 67
3.1 Introduction / 概述 67
3.2 Socket Address Structures / 套接字地址結構 67
3.3 Value-Result Arguments / 值-結果參數 74
3.4 Byte Ordering Functions / 字節排序函數 77
3.5 Byte Manipulation Functions / 字節操縱函數 80
3.6 inet_aton, inet_addr, and inet_ntoa Functions / inet_aton、inet_addr和inet_ntoa函數 82
3.7 inet_pton and inet_ntop Functions / inet_pton和inet_ntop函數 83
3.8 sock_ntop and Related Functions / sock_ntop和相關函數 86
3.9 readn, writen, and readline Functions / readn、writen和readline函數 88
3.10 Summary / 小結 92
Chapter 4. Elementary TCP Sockets / 基本TCP套接字 95
4.1 Introduction / 概述 95
4.2 socket Function / socket函數 95
4.3 connect Function / connect函數 99
4.4 bind Function / bind函數 101
4.5 listen Function / listen函數 104
4.6 accept Function / accept函數 109
4.7 fork and exec Functions / fork和exec函數 111
4.8 Concurrent Servers / 並發服務器 114
4.9 close Function / close函數 117
4.10 getsockname and getpeername Functions / getsockname和getpeername函數 117
4.11 Summary / 小結 120
Chapter 5. TCP Client/Server Example / TCP客戶/服務器示例 121
5.1 Introduction / 概述 121
5.2 TCP Echo Server: main Function / TCP迴送服務器程序:main函數 122
5.3 TCP Echo Server: str_echo Function / TCP迴送服務器程序:str_echo函數 123
5.4 TCP Echo Client: main Function / TCP迴送客戶程序:main函數 124
5.5 TCP Echo Client: str_cli Function / TCP迴送客戶程序:str_cli函數 125
5.6 Normal Startup / 正常啓動 126
5.7 Normal Termination / 正常終止 128
5.8 POSIX Signal Handling / POSIX信號處理 129
5.9 Handling SIGCHLD Signals / 處理SIGCHLD信號 132
5.10 wait and waitpid Functions / wait和waitpid函數 135
5.11 Connection Abort before accept Returns / accept返迴前連接異常中止 139
5.12 Termination of Server Process / 服務器進程的終止 141
5.13 SIGPIPE Signal / SIGPIPE信號 142
5.14 Crashing of Server Host / 服務器主機崩潰 144
5.15 Crashing and Rebooting of Server Host / 服務器主機崩潰及重啓 144
5.16 Shutdown of Server Host / 服務器主機關機 145
5.17 Summary of TCP Example / TCP示例小結 146
5.18 Data Format / 數據格式 147
5.19 Summary / 小結 151
Chapter 6. I/O Multiplexing: The select and poll Functions / I/O多路復用:select和poll函數 153
6.1 Introduction / 概述 153
6.2 I/O Models / I/O模型 154
6.3 select Function / select函數 160
6.4 str_cli Function (Revisited) / 再訪str_cli函數 167
6.5 Batch Input and Buffering / 批量輸入和緩衝 169
6.6 shutdown Function / shutdown函數 172
6.7 str_cli Function (Revisited Again) / 三顧str_cli函數 173
6.8 TCP Echo Server (Revisited) / 再訪TCP迴送服務器程序 175
6.9 pselect Function / pselect函數 181
6.10 poll Function / poll函數 182
6.11 TCP Echo Server (Revisited Again) / 三顧TCP迴送服務器程序 185
6.12 Summary / 小結 188
Chapter 7. Socket Options / 套接字選項? 191
7.1 Introduction / 概述 191
7.2 getsockopt and setsockopt Functions / getsockopt和setsockopt函數 192
7.3 Checking if an Option Is Supported and Obtaining the Default / 檢查選項是否被支持並獲取默認值 194
7.4 Socket States / 套接字狀態 198
7.5 Generic Socket Options / 通用套接字選項 198
7.6 IPv4 Socket Options / IPv4套接字選項 214
7.7 ICMPv6 Socket Option / ICMPv6套接字選項 216
7.8 IPv6 Socket Options / IPv6套接字選項 216
7.9 TCP Socket Options / TCP套接字選項 219
7.10 SCTP Socket Options / SCTP套接字選項 222
7.11 fcntl Function / fcntl函數 233
7.12 Summary / 小結 236
Chapter 8. Elementary UDP Sockets / 基本UDP套接字 239
8.1 Introduction / 概述 239
8.2 recvfrom and sendto Functions / recvfrom和sendto函數 240
8.3 UDP Echo Server: main Function / UDP迴送服務器程序:main函數 241
8.4 UDP Echo Server: dg_echo Function / UDP迴送服務器程序:dg_echo函數 242
8.5 UDP Echo Client: main Function / UDP迴送客戶程序:main函數 244
8.6 UDP Echo Client: dg_cli Function / UDP迴送客戶程序:dg_cli函數 245
8.7 Lost Datagrams / 數據報的丟失 245
8.8 Verifying Received Response / 驗證接收到的響應 246
8.9 Server Not Running / 服務器程序未運行 248
8.10 Summary of UDP Example / UDP示例小結 250
8.11 connect Function with UDP / UDP的connect函數 252
8.12 dg_cli Function (Revisited) / 再論dg_cli函數 256
8.13 Lack of Flow Control with UDP / UDP缺乏流量控製 257
8.14 Determining Outgoing Interface with UDP / UDP中的外齣接口的確定 261
8.15 TCP and UDP Echo Server Using select / 使用select函數的TCP和UDP迴送服務器程序 262
8.16 Summary / 小結 264
Chapter 9. Elementary SCTP Sockets / 基本SCTP套接字 267
9.1 Introduction / 概述 267
9.2 Interface Models / 接口模型 268
9.3 sctp_bindx Function / sctp_bindx函數 272
9.4 sctp_connectx Function / sctp_connectx函數 274
9.5 sctp_getpaddrs Function / sctp_getpaddrs函數 275
9.6 sctp_freepaddrs Function / sctp_freepaddrs函數 275
9.7 sctp_getladdrs Function / sctp_getladdrs函數 275
9.8 sctp_freeladdrs Function / sctp_freeladdrs函數 276
9.9 sctp_sendmsg Function / sctp_sendmsg函數 276
9.10 sctp_recvmsg Function / sctp_recvmsg函數 277
9.11 sctp_opt_info Function / sctp_opt_info函數 278
9.12 sctp_peeloff Function / sctp_peeloff函數 278
9.13 shutdown Function / shutdown函數 278
9.14 Notifications / 通知 280
9.15 Summary / 小結 286
Chapter 10. SCTP Client/Server Example / SCTP客戶/服務器示例 287
10.1 Introduction / 概述 287
10.2 SCTP One-to-Many-Style Streaming Echo Server: main Function / SCTP一到多式流分迴送服務器程序:main函數 288
10.3 SCTP One-to-Many-Style Streaming Echo Client: main Function / SCTP一到多式流分迴送客戶程序:main函數 290
10.4 SCTP Streaming Echo Client: str_cli Function / SCTP流分迴送客戶程序:str_cli函數 292
10.5 Exploring Head-of-Line Blocking / 探究頭端阻塞 293
10.6 Controlling the Number of Streams / 控製流的數目 299
10.7 Controlling Termination / 控製終止 300
10.8 Summary / 小結 301
Chapter 11. Name and Address Conversions / 名字與地址轉換 303
11.1 Introduction / 概述 303
11.2 Domain Name System (DNS) / 域名係統 303
11.3 gethostbyname Function / gethostbyname函數 307
11.4 gethostbyaddr Function / gethostbyaddr函數 310
11.5 getservbyname and getservbyport Functions / getservbyname和getservbyport函數 311
11.6 getaddrinfo Function / getaddrinfo函數 315
11.7 gai_strerror Function / gai_strerror函數 320
11.8 freeaddrinfo Function / freeaddrinfo函數 321
11.9 getaddrinfo Function: IPv6 / getaddrinfo函數:IPv6 322
11.10 getaddrinfo Function: Examples / getaddrinfo函數:示例 324
11.11 host_serv Function / host_serv函數 325
11.12 tcp_connect Function / tcp_connect函數 326
11.13 tcp_listen Function / tcp_listen函數 330
11.14 udp_client Function / udp_client函數 334
11.15 udp_connect Function / udp_connect函數 337
11.16 udp_server Function / udp_server函數 338
11.17 getnameinfo Function / getnameinfo函數 340
11.18 Re-entrant Functions / 可重入函數 341
11.19 gethostbyname_r and gethostbyaddr_r Functions / gethostbyname_r和gethostbyaddr_r函數 344
11.20 Obsolete IPv6 Add
UNIX網絡編程 捲1 套接字聯網API(第3版 英文版) 下載 mobi epub pdf txt 電子書