UNIX網絡編程(捲1)-套接字聯網API(第3版)

UNIX網絡編程(捲1)-套接字聯網API(第3版) pdf epub mobi txt 电子书 下载 2025

[美] Stevens 著
圖書標籤:
  • UNIX網絡編程
  • 套接字
  • 網絡編程
  • API
  • C語言
  • 網絡協議
  • BSD
  • Linux
  • 係統編程
  • 網絡通信
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
店铺: 大丰新华书店专营店
出版社: 人民邮电出版社
ISBN:9787115367198
商品编码:25547301571
包装:平装
开本:16
出版时间:2015-08-01

具体描述


內容介紹
基本信息
書名: 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章 流
附錄
參考文獻
索引


暫時沒有目錄,請見諒!

深入剖析網絡協議棧的基石:理解現代互聯網通信的原理與實踐 在信息爆炸的時代,網絡通信已成為我們生活中不可或缺的組成部分。從電子郵件的發送,到網頁的瀏覽,再到實時音視頻的傳輸,這一切的背後都離不開強大的網絡協議和精密的編程接口。本書將帶您踏上一段深入探索網絡通信底層機製的旅程,專注於理解和掌握構建可靠、高效網絡應用程序的關鍵技術。我們將聚焦於操作係統的核心網絡功能,揭示網絡數據如何在計算機之間流動,以及如何通過編程的方式來控製和管理這一過程。 本書的核心在於剖析網絡通信的“語言”——TCP/IP協議族。您將瞭解到,從最基礎的IP地址分配、數據包的路由轉發,到傳輸層可靠的連接建立、數據傳輸和擁塞控製,每一個環節都蘊含著精妙的設計。我們會逐一解析TCP的三次握 हाथ和四次揮手,理解其如何保證數據傳輸的準確性和順序性;深入研究UDP的無連接特性,探討其在哪些場景下更具優勢;並進一步審視HTTP、FTP、DNS等應用層協議如何建立在TCP/UDP之上,為用戶提供豐富多彩的網絡服務。 然而,僅僅理解協議的原理是遠遠不夠的。真正的挑戰在於如何將這些原理轉化為實際可用的應用程序。本書的重點將放在操作係統的網絡編程接口上,特彆是那些構成瞭現代網絡應用程序基石的API。我們將帶領您領略Socket API的強大功能,這是絕大多數網絡應用程序與操作係統內核進行通信的通用接口。 您將學習如何創建Socket,選擇閤適的協議族(如IPv4或IPv6)、套接字類型(如TCP的麵嚮連接的流套接字,或UDP的無連接的數據報套接字)以及通信協議(如TCP或UDP)。掌握Socket的創建過程是後續所有網絡通信操作的基礎。 隨後,我們將深入講解服務器端和客戶端的核心操作。對於服務器而言,學會創建監聽套接字(listening socket),將其與指定的端口號綁定(bind),並開始監聽傳入連接(listen),是等待客戶端連接的必要步驟。之後,理解accept函數的作用至關重要,它負責接受客戶端的連接請求,並返迴一個新的連接套接字,用於與該特定客戶端進行通信。 對於客戶端,我們將重點介紹connect函數,它用於建立與服務器的連接。一旦連接建立,無論是服務器還是客戶端,都將進入數據傳輸階段。 數據傳輸是網絡編程的核心內容。本書將詳盡介紹send(或write)和recv(或read)函數在TCP流套接字上的使用。您將理解為什麼在TCP流套接字上,這些函數可能不會一次性傳輸所有請求的數據,以及如何通過循環讀取和寫入來確保數據的完整性。我們會探討如何處理發送和接收過程中可能齣現的各種錯誤,並學習如何優雅地關閉連接(close)。 對於UDP無連接的數據報套接字,我們將介紹sendto和recvfrom函數。與TCP的流式傳輸不同,UDP的數據傳輸是以數據報為單位的,每個數據報都包含完整的發送方和接收方地址信息。您將理解UDP的“盡力而為”的特性,以及在需要高可靠性時,應用層需要如何自行實現諸如重傳、確認等機製。 除瞭基礎的數據傳輸,本書還將觸及一些更高級的網絡編程概念。例如,您將瞭解到如何處理多客戶端並發連接。對於服務器而言,處理來自多個客戶端的請求是一項常見且重要的任務。我們會探討幾種經典的並發處理模型: 多進程模型(fork): 學習如何使用fork係統調用為每個客戶端連接創建一個新的子進程來處理。理解其優缺點,如實現簡單,但進程創建和銷毀的開銷較大。 多綫程模型(pthread): 探討如何利用多綫程來提高並發處理能力。理解綫程的創建、同步和通信,以及與多進程模型相比的優勢和挑戰。 I/O多路復用(select、poll、epoll): 這是提高服務器性能的關鍵技術。您將深入理解I/O多路復用機製如何在一個進程(或綫程)中同時監視多個文件描述符(包括套接字),並在任何一個文件描述符就緒(如可讀、可寫)時通知應用程序。我們將詳細解析select、poll和epoll的工作原理、API使用以及各自的適用場景和性能特點。這將是構建高性能網絡服務器的核心技術之一。 本書還將引導您探索網絡通信中的一些重要細節和挑戰。例如,您將學習如何處理不同字節序(大端序和小端序)的問題,尤其是在網絡通信中,不同機器可能使用不同的字節序,需要進行轉換以保證數據被正確解析。 此外,網絡地址轉換(NAT)也是現代網絡環境中普遍存在的現象。您將瞭解NAT的基本原理,以及它對網絡編程可能帶來的影響。 數據包的捕獲和分析是調試網絡應用程序、理解網絡行為的重要手段。本書將介紹如何使用諸如tcpdump等工具來抓取網絡數據包,並學會如何閱讀和理解抓包結果,從而定位網絡通信中的問題。 更進一步,您將接觸到一些與網絡安全相關的話題。雖然本書並非專門的網絡安全教程,但我們將探討一些基礎的安全實踐,例如如何避免常見的漏洞,以及在網絡通信中應注意的安全問題。 本書的編寫風格注重理論與實踐的結閤。每一項概念的介紹都將輔以清晰的代碼示例,幫助您將理論知識轉化為實際的代碼。這些示例將是經過精心設計和測試的,能夠直觀地展示API的使用方法和網絡通信的流程。您將能夠通過閱讀和運行這些代碼,快速上手並掌握各項網絡編程技術。 通過本書的學習,您將獲得以下能力: 深入理解TCP/IP協議棧的運作原理: 從IP尋址到TCP的可靠傳輸,構建紮實的理論基礎。 熟練掌握Socket API的使用: 能夠創建、配置和管理Socket,實現客戶端和服務器端的通信。 編寫健壯的網絡應用程序: 掌握數據傳輸、錯誤處理和連接管理的關鍵技術。 構建高性能的網絡服務: 理解並應用I/O多路復用等技術,實現高並發的網絡服務。 診斷和調試網絡問題: 學習使用工具分析網絡流量,快速定位和解決通信故障。 為更高級的網絡技術打下基礎: 為深入學習Web服務、分布式係統、網絡安全等領域做好準備。 無論您是希望開發網絡服務器、客戶端應用程序,還是僅僅想深入理解互聯網是如何工作的,本書都將是您不可或缺的參考。它將為您揭示網絡通信的奧秘,賦予您構建下一代互聯網應用的能力。準備好迎接這場激動人心的技術探索之旅吧!

用户评价

评分

評價五: 《UNIX網絡編程(捲1)-套接字聯網API(第三版)》這本書,對於那些希望在UNIX環境下進行網絡編程的開發者來說,絕對是一部裏程碑式的著作。我自己在開發過程中,經常會遇到一些網絡通信的瓶頸或者難以理解的現象,而這本書就如同一個經驗豐富的嚮導,總能給我提供最準確的答案。我特彆喜歡書中對網絡模型層次的細緻劃分,以及對每一層涉及到的關鍵API的深入剖析。比如,對於TCP連接的建立、維持和關閉的細節,以及UDP的無連接特性,書中都有著非常詳盡的描述,並且配以大量的代碼示例。我曾遇到過一個棘手的關於連接重置的問題,通過查閱書中關於TCP狀態轉移和錯誤處理的部分,我很快就找到瞭問題的根源並得到瞭解決。此外,書中對於異步I/O模型以及多路復用技術的講解,更是為我打開瞭新的思路,讓我能夠編寫齣更加高效和健壯的網絡應用程序。這本書不僅是一本API手冊,更是一本關於網絡編程哲學和實踐的寶典。它讓我從一個單純的API調用者,蛻變成瞭一個對網絡通信原理有深刻理解的開發者。

评分

評價三: 我是在一個偶然的機會下瞭解到《UNIX網絡編程(捲1)-套接字聯網API(第三版)》這本書的,當時我的項目正好涉及到瞭大量的底層網絡通信,而我對這方麵的理解一直停留在比較錶麵的程度。這本書的齣現,無疑是雪中送炭。它並沒有像很多技術書籍那樣,上來就拋齣晦澀難懂的概念,而是從最基礎的socket概念講起,一步步構建起對整個網絡通信模型的理解。我特彆喜歡它對TCP和UDP協議的對比講解,清晰地展現瞭它們各自的優缺點以及適用場景。書中大量的代碼示例,都是可以直接運行並産生預期效果的,這對於我這樣動手能力比較強的學習者來說,簡直是太友好瞭。我嘗試著修改瞭一些示例代碼,觀察程序的行為變化,這個過程讓我對API的理解更加直觀和深刻。此外,書中對於多進程和多綫程在網絡服務器中的應用也做瞭詳細的闡述,這對於我設計高並發的網絡服務至關重要。我甚至發現瞭一些之前從未留意過的API選項和配置,這些細微之處往往是影響程序性能的關鍵。總而言之,這本書不僅是理論的講解,更是一本實戰的指南,讓我能夠快速地將理論知識轉化為實際生産力。

评分

評價一: 這本《UNIX網絡編程(捲1)-套接字聯網API(第三版)》真是讓我受益匪淺!作為一名初涉網絡編程的開發者,我一直被各種復雜的網絡協議和API搞得頭昏腦漲。這本書就像一盞明燈,照亮瞭我前進的道路。作者的講解深入淺齣,從最基礎的TCP/IP協議棧講起,循序漸進地介紹瞭套接字API的方方麵麵。我尤其喜歡書中對每個API函數的詳細解釋,不僅有參數說明、返迴值,還有大量的代碼示例,這讓我能夠輕鬆地理解和掌握它們的使用方法。書中的概念圖和流程圖也相當清晰,幫助我理清瞭網絡通信的整個過程。我嘗試著書中提供的例子,很快就能夠編寫齣自己的簡單網絡應用,這給瞭我極大的信心。而且,作者並沒有停留在理論層麵,而是深入探討瞭實際應用中的一些常見問題和優化技巧,比如如何處理阻塞和非阻塞I/O,如何提高並發性能等。這些寶貴的經驗讓我少走瞭很多彎路。總而言之,如果你想深入理解UNIX下的網絡編程,這絕對是一本不可多得的經典之作。

评分

評價二: 坦白說,在入手《UNIX網絡編程(捲1)-套接字聯網API(第三版)》之前,我曾對它是否能帶來新的啓發有所疑慮,畢竟網絡編程領域的一些基礎知識已經相對成熟。然而,事實證明我的擔憂是多餘的。第三版在保留經典內容的基礎上,加入瞭許多對現代網絡環境和技術發展的考量。例如,書中對IPv6的支持、對信號處理在網絡編程中的應用、以及對一些更高級的I/O模型(如select、poll、epoll)的深入剖析,都讓我眼前一亮。作者並非簡單地羅列API,而是著重於講解其背後的設計理念和工作原理。通過閱讀,我不僅學會瞭如何調用API,更重要的是理解瞭為什麼這樣設計,以及在不同場景下應該如何選擇閤適的API。書中對錯誤處理和調試技巧的講解也十分到位,這對於解決實際開發中遇到的棘手問題至關重要。我特彆欣賞作者在講解過程中穿插的“陷阱”和“提示”,這些都是作者多年實踐經驗的凝結,避免瞭我可能踩到的坑。這本書更像是一位資深工程師在與我進行一對一的深度交流,讓我對網絡編程有瞭更深刻、更全麵的認識。

评分

評價四: 說實話,拿到《UNIX網絡編程(捲1)-套接字聯網API(第三版)》這本書的時候,我內心是忐忑的。我並非計算機科學科班齣身,對於底層網絡編程的瞭解可以說是知之甚少,一直以來都覺得這是一個非常高深且難以企及的領域。然而,這本書徹底改變瞭我的看法。作者以一種極其耐心和易於理解的方式,將復雜的網絡概念拆解成一個個小塊,然後用清晰的語言進行闡述。我尤其欣賞書中對“客戶端-服務器”模型的講解,從建立連接到數據傳輸,再到連接的關閉,整個過程都被描述得井井有條。每一個API函數的調用,都配有詳細的解釋和代碼演示,讓我不再是死記硬背,而是真正理解瞭它的作用。我嘗試著根據書中的指示,一步步搭建瞭一個簡單的聊天程序,當我看到兩個程序能夠成功地進行實時通信時,那種成就感是難以言喻的。這本書不僅僅教授瞭“是什麼”,更重要的是解釋瞭“為什麼”,讓我能夠舉一反三,觸類旁通。對於像我這樣的非科班背景的學習者來說,這本書絕對是一個絕佳的入門選擇,它讓我對網絡編程不再感到畏懼,反而充滿瞭探索的興趣。

相关图书

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有