| 書名: | UNIX網絡編程(捲1)-套接字聯網API(D3版) | ||
| 作者: | (美)Stevens | 開本: | |
| YJ: | 129 | 頁數: | |
| 現價: | 見1;CY =CY部 | 齣版時間 | 2015-08 |
| 書號: | 9787115367198 | 印刷時間: | |
| 齣版社: | 人民郵電齣版社 | 版次: | |
| 商品類型: | 正版圖書 | 印次: | |
W. Richard Stevens(1951—1999) GJ知名的UNIX和網絡專傢,備受贊譽的技術作傢。生前著有《TCP/IP詳解》(三捲)、《UNIX環境GJ編程》和《UNIX網絡編程》(兩捲),均為不朽的經典著作。
Bill Fenner AT&T;實驗室主任研究員,專攻IP多播、網絡管理和測量,他是IETF路由的領域主管之一,是RFC標準文檔的批準人。
Andrew M. Rudoff Sun公司ZS軟件工程師,專攻網絡、操作係統內核、文件係統和高可用性軟件體係結構。
精彩導讀 目錄 D一部分 簡介和TCP/IP
D1章 簡介
1.1 概述
1.2 一個簡單的時間獲取客戶程序
1.3 協議無關性
1.4 錯誤處理:包裹函數
1.5 一個簡單的時間獲取服務器程序
1.6 本書中客戶/服務器程序示例索引錶
1.7 OSI模型
1.8 BSD網絡支持曆史
1.9 測試用網絡及主機
1.10 Unix標準
1.11 64位體係結構
1.12 小結
習題
D2章 傳輸層:TCP、UDP和SCTP
2.1 概述
2.2 總圖
2.3 用戶數據報協議(UDP)
2.4 傳輸控製協議(TCP)
2.5 流控製傳輸協議(SCTP)
2.6 TCP連接的建立和終止
2.7 TIME_WAIT狀態
2.8 SCTP關聯的建立和終止
2.9 端口號
2.10 TCP端口號與並發服務器
2.11 緩衝區大小及限製
2.12 標準因特網服務
2.13 常見因特網應用的協議使用
2.14 小結
習題
D二部分 基本套接字編程
D3章 套接字編程簡介
3.1 概述
3.2 套接字地址結構
3.3 值—結果參數
3.4 字節排序函數
3.5 字節操縱函數
3.6 inet_aton、inet_addr和inet_ntoa函數
3.7 inet_pton和inet_ntop函數
3.8 sock_ntop和相關函數
3.9 readn、writen和readline函數
3.10 小結
習題
D4章 基本TCP套接字編程
4.1 概述
4.2 socket函數
4.3 connect函數
4.4 bind函數
4.5 listen函數
4.6 accept函數
4.7 fork和exec函數
4.8 並發服務器
4.9 close函數
4.10 getsockname和getpeername函數
4.11 小結
習題
D5章 TCP客戶/服務器程序示例
5.1 概述
5.2 TCP迴射服務器程序:main函數
5.3 TCP迴射服務器程序:str_echo函數
5.4 TCP迴射客戶程序:main函數
5.5 TCP迴射客戶程序:str_cli函數
5.6 正常啓動
5.7 正常終止
5.8 POSIX信號處理
5.9 處理SIGCHLD信號
5.10 wait和waitpid函數
5.11 accept返迴前連接中止
5.12 服務器進程終止
5.13 SIGPIPE信號
5.14 服務器主機崩潰
5.15 服務器主機崩潰後重啓
5.16 服務器主機關機
5.17 TCP程序例子小結
5.18 數據格式
5.19 小結
習題
D6章 I/O復用:select和poll函數
6.1 概述
6.2 I/O模型
6.3 select函數
6.4 str_cli函數(修訂版)
6.5 批量輸入
6.6 shutdown函數
6.7 str_cli函數(再修訂版)
6.8 TCP迴射服務器程序(修訂版)
6.9 pselect函數
6.10 poll函數
6.11 TCP迴射服務器程序(再修訂版)
6.12 小結
習題
D7章 套接字選項
7.1 概述
7.2 getsockopt和setsockopt函數
7.3 檢查選項是否受支持並獲取默認值
7.4 套接字狀態
7.5 通用套接字選項
7.6 IPv4套接字選項
7.7 ICMPv6套接字選項
7.8 IPv6套接字選項
7.9 TCP套接字選項
7.10 SCTP套接字選項
7.11 fcntl函數
7.12 小結
習題
D8章 基本UDP套接字編程
8.1 概述
8.2 recvfrom和sendto函數
8.3 UDP迴射服務器程序:main函數
8.4 UDP迴射服務器程序:dg_echo函數
8.5 UDP迴射客戶程序:main函數
8.6 UDP迴射客戶程序:dg_cli函數
8.7 數據報的丟失
8.8 驗證接收到的響應
8.9 服務器進程未運行
8.10 UDP程序例子小結
8.11 UDP的connect函數
8.12 dg_cli函數(修訂版)
8.13 UDP缺乏流量控製
8.14 UDP中的外齣接口的確定
8.15 使用select函數的TCP和UDP迴射服務器程序
8.16 小結
習題
D9章 基本SCTP套接字編程
9.1 概述
9.2 接口模型
9.3 sctp_bindx函數
9.4 sctp_connectx函數
9.5 sctp_getpaddrs函數
9.6 sctp_freepaddrs函數
9.7 sctp_getladdrs函數
9.8 sctp_freeladdrs函數
9.9 sctp_sendmsg函數
9.10 sctp_recvmsg函數
9.11 sctp_opt_info函數
9.12 sctp_peeloff函數
9.13 shutdown函數
9.14 通知
9.15 小結
習題
D10章 SCTP客戶/服務器程序例子
10.1 概述
10.2 SCTP一到多式流分迴射服務器程序:main函數
10.3 SCTP一到多式流分迴射客戶程序:main函數
10.4 SCTP流分迴射客戶程序:sctpstr_cli函數
10.5 探究頭端阻塞
10.6 控製流的數目
10.7 控製終結
10.8 小結
習題
D11章 名字與地址轉換
11.1 概述
11.2 域名係統
11.3 gethostbyname函數
11.4 gethostbyaddr函數
11.5 getservbyname和getservbyport函數
11.6 getaddrinfo函數
11.7 gai_strerror函數
11.8 freeaddrinfo函數
11.9 getaddrinfo函數:IPv6
11.10 getaddrinfo函數:例子
11.11 host_serv函數
11.12 tcp_connect函數
11.13 tcp_listen函數
11.14 udp_client函數
11.15 udp_connect函數
11.16 udp_server函數
11.17 getnameinfo函數
11.18 可重入函數
11.19 gethostbyname_r和gethostbyaddr_r函數
11.20 作廢的IPv6地址解析函數
11.21 其他網絡相關信息
11.22 小結
習題
D三部分 GJ套接字編程
D12章 IPv4與IPv6的互操作性
12.1 概述
12.2 IPv4客戶與IPv6服務器
12.3 IPv6客戶與IPv4服務器
12.4 IPv6地址測試宏
12.5 源代碼可移植性
12.6 小結
習題
D13章 守護進程和inetdCJ服務器
13.1 概述
13.2 syslogd守護進程
13.3 syslog函數
13.4 daemon_init函數
13.5 inetd守護進程
13.6 daemon_inetd函數
13.7 小結
習題
D14章 GJI/O函數
14.1 概述
14.2 套接字超時
14.3 recv和send函數
14.4 readv和writev函數
14.5 recvmsg和sendmsg函數
14.6 輔助數據
14.7 排隊的數據量
14.8 套接字和標準I/O
14.9 GJ輪詢技術
14.10 T/TCP:事務目的TCP
14.11 小結
習題
D15章 Unix域協議
15.1 概述
15.2 Unix域套接字地址結構
15.3 socketpair函數
15.4 套接字函數
15.5 Unix域字節流客戶/服務器程序
15.6 Unix域數據報客戶/服務器程序
15.7 描述符傳遞
15.8 接收發送者的憑證
15.9 小結
習題
D16章 非阻塞式I/O
16.1 概述
16.2 非阻塞讀和寫:str_cli函數(修訂版)
16.3 非阻塞connect
16.4 非阻塞connect:時間獲取客戶程序
16.5 非阻塞connect:Web客戶程序
16.6 非阻塞accept
16.7 小結
習題
D17章 ioctl操作
17.1 概述
17.2 ioctl函數
17.3 套接字操作
17.4 文件操作
17.5 接口配置
17.6 get_ifi_info函數
17.7 接口操作
17.8 ARP高速緩存操作
17.9 路由錶操作
17.10 小結
習題
D18章 路由套接字
18.1 概述
18.2 數據鏈路套接字地址結構
18.3 讀和寫
18.4 sysctl操作
18.5 get_ifi_info函數
18.6 接口名字和索引函數
18.7 小結
習題
D19章 密鑰管理套接字
19.1 概述
19.2 讀和寫
19.3 傾瀉安全關聯數據庫
19.4 創建靜態安全關聯
19.5 動態維護安全關聯
19.6 小結
習題
D20章 廣播
20.1 概述
20.2 廣播地址
20.3 單播和廣播的比較
20.4 使用廣播的dg_cli函數
20.5 競爭狀態
20.6 小結
習題
D21章 多播
21.1 概述
21.2 多播地址
21.3 局域網上多播和廣播的比較
21.4 廣域網上的多播
21.5 源特定多播
21.6 多播套接字選項
21.7 mcast_join和相關函數
21.8 使用多播的dg_cli函數
21.9 接收IP多播基礎設施會話聲明
21.10 發送和接收
21.11 SNTP:簡單網絡時間協議
21.12 小結
習題
D22章 GJUDP套接字編程
22.1 概述
22.2 接收標誌、目的IP地址和接口索引
22.3 數據報截斷
22.4 何時用UDP代替TCP
22.5 給UDP應用增加可靠性
22.6 捆綁接口地址
22.7 並發UDP服務器
22.8 IPv6分組信息
22.9 IPv6路徑MTU控製
22.10 小結
習題
D23章 GJSCTP套接字編程
23.1 概述
23.2 自動關閉的一到多式服務器程序
……
D31章 流
附錄
參考文獻
索引
這本書的內容比我想象的要更加深入和全麵。它不僅僅是關於套接字API的“怎麼用”,更是關於“為什麼這麼用”的哲學思考。我特彆欣賞作者在講解一些復雜概念時,會引經據典,參考大量的RFC文檔和實際的操作係統內核行為,這使得書中介紹的知識點都非常有說服力,並且能夠觸及到更底層的細節。例如,關於TCP的擁塞控製算法,以及TCP的可靠性是如何通過確認、重傳和排序等機製來實現的,這些內容對我來說是全新的,也讓我對網絡的健壯性有瞭更深的理解。還有書中關於信號處理在網絡編程中的應用,以及如何處理EINTR錯誤,這些都是在實際開發中經常會遇到的問題,但往往在初學者看來很棘手。這本書把這些難點都一一化解瞭,並且提供瞭非常清晰的解決方案。我甚至覺得,這本書不僅僅是寫給程序員看的,也適閤網絡協議的研究者,或者任何對網絡通信底層原理感興趣的人。我曾經花瞭很多時間在網上搜索類似的內容,但始終沒有找到像這本書這樣係統、權威的講解。
评分這本書真的是一次令人興奮的學習體驗。它不僅僅是關於API的介紹,更像是一本網絡編程的“武功秘籍”,教會瞭我如何運用強大的力量來構建復雜的網絡應用。我特彆喜歡書中的一些“陷阱”和“誤區”的討論,作者會指齣許多初學者容易犯的錯誤,並給齣避免這些錯誤的方法,這大大節省瞭我試錯的時間。例如,關於send()和write()的區彆,以及recv()和read()的細微差彆,這些細節看似微小,但在實際的並發編程中卻可能引發難以預料的問題。書中對網絡地址結構體的講解也十分細緻,包括IPv4和IPv6的轉換,以及一些特殊的地址類型,都為我理解網絡通信的地址錶示提供瞭清晰的框架。我尤其贊賞作者對於TCP數據流和UDP數據報的區分講解,這對於理解兩種協議的不同行為模式至關重要。這本書讓我明白,網絡編程並非簡單的函數調用,而是一門需要深入理解協議、操作係統以及並發模型纔能掌握的藝術。
评分讀這本書的過程,充滿瞭“原來如此”的頓悟時刻。它把我曾經模糊的網絡概念一一梳理清楚,並且給予瞭我解決實際問題的有力武器。我特彆喜歡作者對於網絡錯誤處理的講解,書中列舉瞭大量可能齣現的錯誤碼,並且解釋瞭它們産生的原因以及相應的處理策略,這讓我在麵對復雜的網絡故障時,能夠更加從容地定位問題。例如,關於連接被拒絕、連接超時、文件描述符溢齣等等,這些都是開發中常見的難題,但這本書都給齣瞭非常實用的解決方案。而且,書中還涉及到瞭一些與網絡相關的係統調用,比如ioctl(),以及如何使用select()、poll()來處理多個文件描述符,這些都極大地拓展瞭我的編程能力。我感覺這本書的價值遠不止於套接字API本身,它更是為我打開瞭一扇通往更廣闊的係統編程和並發編程世界的大門,讓我對如何構建高效、可靠的網絡服務有瞭全新的認識和信心。
评分這本書的寫作風格非常獨特,它以一種非常沉浸式的方式帶領讀者進入到網絡編程的世界。我感覺自己就像是跟著一位經驗豐富的工程師在一步步構建和調試網絡程序。書中對每一個API的講解都配有大量的圖示和流程圖,這對於理解抽象的網絡概念非常有幫助。例如,在講解TCP服務器的並發模型時,作者詳細對比瞭多進程、多綫程以及基於事件驅動的模型,並對它們各自的優缺點進行瞭深入的分析,甚至還討論瞭如何通過一些高級技術來進一步優化性能。我印象特彆深刻的是關於域名解析和DNS的工作原理的章節,作者沒有停留在僅僅調用gethostbyname()這個函數,而是詳細地闡述瞭DNS查詢的過程,包括遞歸查詢和迭代查詢,以及緩存的作用,這讓我對整個互聯網的通信流程有瞭更宏觀的認識。而且,書中還涉及瞭許多關於網絡安全的基礎知識,雖然不是本書的重點,但作者也給齣瞭重要的提醒,這對於我們編寫健壯的網絡程序至關重要。
评分剛拿到這本書,翻開目錄就被深深吸引住瞭。感覺就像是進入瞭一個全新的領域,原本我對網絡編程的理解還停留在一些很基礎的協議層麵,但這本書一下子把我的視野打開瞭。裏麵關於套接字API的介紹,從最基本的socket()、bind()、listen()、accept(),到connect(),每一個函數都講解得非常透徹。不僅僅是API的調用方法,作者還深入剖析瞭它們在TCP和UDP協議下的具體實現機製,比如TCP的連接建立過程,三次握閤四次揮手的細節,以及UDP的無連接特性帶來的優勢和劣勢。讀到關於阻塞和非阻塞I/O的部分,更是讓我醍醐灌頂,原來之前很多網絡程序效率不高的原因就在於此。書中的例子代碼也很實用,跟著敲一遍,再稍微修改一下,就能跑齣符閤自己設想的網絡通信程序,這種成就感是無與倫比的。特彆是對epoll這種高效的I/O多路復用機製的講解,簡直是為我打開瞭一扇新世界的大門,感覺以後寫高性能的網絡服務程序有瞭堅實的基礎。而且,作者的語言風格雖然嚴謹,但並不枯燥,很多地方都能感受到他對技術的熱情和思考,讀起來非常有啓發性。
本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有