Linux網(wǎng)絡(luò)編程(第2版)(Linux典藏大系)
定 價(jià):89 元
叢書名:Linux典藏大系
- 作者:宋敬彬 等編著
- 出版時(shí)間:2014/2/1
- ISBN:9787302335283
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP316.85
- 頁(yè)碼:677
- 紙張:膠版紙
- 版次:2
- 開本:16開
“Linux典藏大系”自2010年陸續(xù)出版以來,因其內(nèi)容豐富、講解細(xì)膩、通俗易懂和實(shí)用性強(qiáng)等特色而深受廣大讀者的喜愛,長(zhǎng)期位居同類圖書銷售排行榜的前列,累計(jì)銷量近10萬冊(cè)。叢書中部分圖書榮獲51CTO讀書頻道“最受讀者喜愛的原創(chuàng)IT技術(shù)圖書獎(jiǎng)”,還有多種圖書的中文繁體字版權(quán)輸出到了中國(guó)臺(tái)灣地區(qū)出版發(fā)行。叢書中的多個(gè)品種被國(guó)內(nèi)幾十所培訓(xùn)機(jī)構(gòu)和大中專院校選為教材。叢書的出版還得到了國(guó)內(nèi)Linux領(lǐng)域最知名的技術(shù)社區(qū)ChinaUnix的大力支持。讀者在ChinaUnix社區(qū)的論壇上與社區(qū)中的Linux愛好者進(jìn)行了廣泛的交流,取得了良好的學(xué)習(xí)效果。2014年2月“Linux典藏大系“全新升級(jí)版(第2版)正式出版,第2版圖書迎合了Linux技術(shù)的最新發(fā)展,全部采用當(dāng)前最流行和穩(wěn)定的Linux發(fā)行版或者相關(guān)工具,是Linux愛好者學(xué)習(xí)Linux的好幫手!
《Linux網(wǎng)絡(luò)編程(第2版)》是獲得大量讀者好評(píng)的“Linux典藏大系”中的《Linux網(wǎng)絡(luò)編程》的第2版。《Linux網(wǎng)絡(luò)編程(第2版)》第1版出版后獲得了讀者的高度評(píng)價(jià)!禠inux網(wǎng)絡(luò)編程(第2版)》循序漸進(jìn),從應(yīng)用層到Linux內(nèi)核,從基本知識(shí)點(diǎn)到綜合案例,全面、系統(tǒng)地向讀者介紹了如何在Linux下進(jìn)行網(wǎng)絡(luò)程序設(shè)計(jì)!禠inux網(wǎng)絡(luò)編程(第2版)》涉及面廣,從基本的編程工具介紹和編程環(huán)境搭建,到高級(jí)技術(shù)和核心原理,再到項(xiàng)目實(shí)戰(zhàn),幾乎涉及Linux網(wǎng)絡(luò)編程的所有重要知識(shí)。
《Linux網(wǎng)絡(luò)編程(第2版)》共分4篇。第1篇介紹Linux操作系統(tǒng)概述、Linux編程環(huán)境、文件系統(tǒng)簡(jiǎn)介、程序、進(jìn)程和線程;第2篇介紹TCP/IP協(xié)議族簡(jiǎn)介、應(yīng)用層網(wǎng)絡(luò)服務(wù)程序簡(jiǎn)介、TCP網(wǎng)絡(luò)編程基礎(chǔ)、服務(wù)器和客戶端信息的獲取、數(shù)據(jù)的IO和復(fù)用、基于UDP協(xié)議的接收和發(fā)送、高級(jí)套接字、套接字選項(xiàng)、原始套接字、服務(wù)器模型選擇,以及IPv6的簡(jiǎn)介;第3篇介紹Linux內(nèi)核中網(wǎng)絡(luò)部分結(jié)構(gòu),以及分布和netfilter框架內(nèi)報(bào)文處理;第4篇介紹三個(gè)網(wǎng)絡(luò)編程的實(shí)例:Web服務(wù)器的例子SHTTPD、網(wǎng)絡(luò)協(xié)議棧的例子SIP、防火墻的例子SIPFW。
《Linux網(wǎng)絡(luò)編程(第2版)》適合所有想全面學(xué)習(xí)Linux網(wǎng)絡(luò)編程的人員閱讀,也適合已經(jīng)從事Linux網(wǎng)絡(luò)開發(fā)的工程技術(shù)人員使用。對(duì)于廣大的Linux平臺(tái)下的網(wǎng)絡(luò)程序設(shè)計(jì)人員,《Linux網(wǎng)絡(luò)編程(第2版)》更是一本不可多得的參考手冊(cè)。
備受推崇的Linux經(jīng)典暢銷書全面升級(jí),ChinaUnix社區(qū)鼎力推薦 資深程序員15年經(jīng)驗(yàn)總結(jié),深入探討Linux應(yīng)用層和內(nèi)核層的網(wǎng)絡(luò)編程 詳細(xì)講解HTTP服務(wù)器、協(xié)議棧和防火墻三個(gè)典型案例的實(shí)際開發(fā)過程 內(nèi)容全面:全書涵蓋Linux網(wǎng)絡(luò)編程從基礎(chǔ)到高級(jí)開發(fā)的方方面面知識(shí)點(diǎn) 內(nèi)容深入:重點(diǎn)講解了技術(shù)性較強(qiáng)的Linux用戶空間網(wǎng)絡(luò)編程及內(nèi)核網(wǎng)絡(luò)編程 注重原理:對(duì)每個(gè)知識(shí)點(diǎn)都從原始概念和基本原理進(jìn)行了詳細(xì)和透徹的分析 插圖豐富:對(duì)比較復(fù)雜和難度較高的內(nèi)容繪制了220余幅原理圖進(jìn)行講解 代碼經(jīng)典:書中的示例代碼大多是從實(shí)際項(xiàng)目總結(jié)而來,有很強(qiáng)的實(shí)用性 實(shí)踐性強(qiáng):結(jié)合450余個(gè)示例、70余個(gè)應(yīng)用實(shí)例及3個(gè)項(xiàng)目案例進(jìn)行講解 案例典型:詳細(xì)介紹了HTTP網(wǎng)絡(luò)服務(wù)器、協(xié)議棧和防火墻的實(shí)現(xiàn)過程推薦閱讀(請(qǐng)點(diǎn)叢書鏈接查看)“Linux典藏大系” (叢書暢銷10萬冊(cè),全面、詳細(xì)、深入、實(shí)用,Linux愛好者必讀經(jīng)典)
Linux操作系統(tǒng)已經(jīng)成為目前最流行的開源操作系統(tǒng),在服務(wù)器、嵌入式系統(tǒng)有著廣泛的應(yīng)用,并且逐步走入個(gè)人電腦的桌面操作系統(tǒng)。Linux的網(wǎng)絡(luò)程序設(shè)計(jì)在服務(wù)器領(lǐng)域、嵌入式領(lǐng)域有著廣泛的應(yīng)用。例如Web服務(wù)器、P2P應(yīng)用、嵌入式網(wǎng)絡(luò)機(jī)頂盒、IPTV機(jī)頂盒、手持設(shè)備等,上述產(chǎn)品大部分采用了開源的Linux系統(tǒng)。因此,熟悉并且能夠編寫網(wǎng)絡(luò)程序代碼,構(gòu)建自己的網(wǎng)絡(luò)架構(gòu)程序是十分重要的。
本書是獲得了大量讀者好評(píng)的“Linux典藏大系”中的《Linux網(wǎng)絡(luò)編程》的第2版。本書全面、系統(tǒng)地介紹了Linux網(wǎng)絡(luò)編程技術(shù),其中通過實(shí)例重點(diǎn)介紹了Linux的應(yīng)用層網(wǎng)絡(luò)設(shè)計(jì)、網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)原理和Linux內(nèi)核防火墻的技術(shù)。學(xué)完本書之后,讀者可以有編寫比較復(fù)雜項(xiàng)目的本領(lǐng)。
關(guān)于“Linux典藏大系”
“Linux典藏大系”是清華大學(xué)出版社自2010年1月以來陸續(xù)推出的一個(gè)圖書系列,截止2013年1月,已經(jīng)出版了10余個(gè)品種。該系列圖書涵蓋了Linux技術(shù)的方方面面,可以滿足各個(gè)層次和各個(gè)領(lǐng)域的讀者學(xué)習(xí)Linux技術(shù)的需求。該系列圖書自出版以來獲得了廣大讀者的好評(píng),已經(jīng)成為L(zhǎng)inux圖書市場(chǎng)上最耀眼的明星品牌之一,其銷量在同類圖書中也名列前茅,其中一些圖書還獲得了“51CTO讀書頻道”頒發(fā)的“最受讀者喜愛的原創(chuàng)IT技術(shù)圖書獎(jiǎng)”。該系列圖書出版過程中也得到了國(guó)內(nèi)Linux領(lǐng)域最知名的技術(shù)社區(qū)ChinaUnix(簡(jiǎn)稱CU)的大力支持和幫助,讀者在CU社區(qū)中就圖書的內(nèi)容與活躍在CU社區(qū)中的Linux技術(shù)愛好者進(jìn)行廣泛交流,將會(huì)取得了良好的學(xué)習(xí)效果。
關(guān)于本書第2版
本書第1版出版后深受讀者好評(píng),并被ChinaUNIX技術(shù)社區(qū)所推薦。但是隨著Linux技術(shù)的發(fā)展,本書第1版的內(nèi)容與Linux各個(gè)新版本有一定出入,這給讀者的學(xué)習(xí)造成了一些不便。應(yīng)廣大讀者的要求,我們結(jié)合Linux技術(shù)的最新發(fā)展推出第2版圖書。相比第1版,第2版圖書在內(nèi)容上的變化主要體現(xiàn)在以下幾個(gè)方面:
(1)操作系統(tǒng)環(huán)境從原有的Debian改為更為通用的Ubuntu。
(2)Linux內(nèi)核介紹增加了3.*系列。
。3)對(duì)IT業(yè)界的動(dòng)態(tài)進(jìn)行了更新。
。4)對(duì)一些專有名詞的大小寫進(jìn)行了更正,如VIM、Emacs。
(5)由于Vim區(qū)分大小寫,尤其在快捷鍵上面。為了避免讀者誤操作,所以對(duì)原有的快捷鍵大小寫進(jìn)行了重新確認(rèn),并更正部分錯(cuò)誤的大小寫。
。6)更正了第1版中的部分描述錯(cuò)誤,如Objective-C。
。7)對(duì)GCC軟件包進(jìn)行了更新。
。8)為了便于讀者閱讀和使用代碼,對(duì)于完整的代碼增加了行號(hào)。
。9)更正了部分調(diào)試選項(xiàng)的大小寫錯(cuò)誤。
。10)對(duì)部分Shell命令進(jìn)行了更新,如fdisk。
。11)對(duì)Linux涉及的硬件信息進(jìn)行了更新,如對(duì)Ext4的支持。
(12)對(duì)需要重點(diǎn)注意的關(guān)鍵代碼做了加粗。
(13)對(duì)部分代碼缺少的庫(kù)文件進(jìn)行了補(bǔ)充。
(14)修改了部分函數(shù)庫(kù)的包含關(guān)系。
。15)修改了部分變量的數(shù)據(jù)類型!
(16)修改了部分代碼行號(hào)的說明錯(cuò)誤。
本書的特點(diǎn)
1.循序漸進(jìn),由淺入深
為了方便讀者學(xué)習(xí),本書首先介紹Linux的開發(fā)環(huán)境,然后介紹基本的網(wǎng)路程序設(shè)計(jì)方法,再進(jìn)行Linux內(nèi)核的網(wǎng)絡(luò)設(shè)計(jì)方法。最后,通過3個(gè)綜合案例,綜合運(yùn)用上述知識(shí),讓讀者更深刻地了解網(wǎng)絡(luò)程序設(shè)計(jì)的知識(shí)。在每一部分的介紹中都是按照由淺入深的方式進(jìn)行介紹,先介紹基礎(chǔ)知識(shí),再結(jié)合高級(jí)知識(shí)進(jìn)行介紹。
2.技術(shù)全面,內(nèi)容充實(shí)
本書基本涵蓋了Linux網(wǎng)絡(luò)程序設(shè)計(jì)的所有知識(shí)面,特別對(duì)于高級(jí)網(wǎng)絡(luò)編程、原始套接字等高級(jí)應(yīng)用層網(wǎng)絡(luò)程序設(shè)計(jì)給出了全面的介紹和豐富的例子程序。除了用戶界面的網(wǎng)絡(luò)程序設(shè)計(jì)外,本書還對(duì)內(nèi)核空間的網(wǎng)絡(luò)程序設(shè)計(jì)進(jìn)行了詳細(xì)的介紹,針對(duì)netfilter框架,做了很細(xì)致的講解,并給出了一個(gè)全面使用netfilter框架的案例,以方便讀者深入了解。
3.對(duì)比講解,理解深刻
由于Linux程序設(shè)計(jì)的知識(shí)用于空間和內(nèi)核空間的代碼和模塊是相互作用的,在多個(gè)主要函數(shù)介紹過程中,本書對(duì)用戶空間和內(nèi)核空間進(jìn)行交互式的對(duì)比介紹,使讀者在了解如何使用的情況下,更深入地了解為什么這樣用,所謂“知其然并知其所以然”。
4.案例精講,深入剖析
根據(jù)本人多年的項(xiàng)目經(jīng)驗(yàn),只有實(shí)際接觸案例和代碼才能夠?qū)χR(shí)點(diǎn)更深入地了解。本書在介紹了Linux網(wǎng)絡(luò)程序設(shè)計(jì)知識(shí)點(diǎn)的基礎(chǔ)上,通過具有典型意義的3個(gè)案例,對(duì)各個(gè)知識(shí)點(diǎn)包括應(yīng)用層的HTTP協(xié)議的Web服務(wù)器、協(xié)議棧原理的協(xié)議棧案例和內(nèi)核網(wǎng)絡(luò)的防火墻案例進(jìn)行了深入剖析。
本書內(nèi)容及體系結(jié)構(gòu)
第1篇 Linux網(wǎng)絡(luò)開發(fā)基礎(chǔ)(第1~4章)
本篇主要內(nèi)容包括:Linux操作系統(tǒng)概述、Linux編程環(huán)境、文件系統(tǒng)簡(jiǎn)介、程序、進(jìn)程和線程。通過本篇的學(xué)習(xí),讀者可以掌握Linux編程的基礎(chǔ)知識(shí),以及編程環(huán)境。
第2篇 Linux用戶層網(wǎng)絡(luò)編程(第5~15章)
本篇主要內(nèi)容包括:TCP/IP協(xié)議族簡(jiǎn)介、應(yīng)用層網(wǎng)絡(luò)服務(wù)程序簡(jiǎn)介、TCP網(wǎng)絡(luò)編程基礎(chǔ)、服務(wù)器和客戶端信息的獲取、數(shù)據(jù)的IO和復(fù)用、基于UDP協(xié)議的接收和發(fā)送、高級(jí)套接字、套接字選項(xiàng)、原始套接字、服務(wù)器模型選擇、IPv6簡(jiǎn)介。通過本篇的學(xué)習(xí),讀者可以掌握Linux網(wǎng)絡(luò)編程的大部分知識(shí)。
第3篇 Linux內(nèi)核網(wǎng)絡(luò)編程(第16章和第17章)
本篇主要內(nèi)容包括:Linux內(nèi)核中網(wǎng)絡(luò)部分結(jié)構(gòu),以及分布和netfilter框架內(nèi)報(bào)文處理。通過本篇的學(xué)習(xí),讀者可以初步了解Linux內(nèi)核網(wǎng)絡(luò)編程的知識(shí)。
第4篇 綜合案例(第18~20章)
本篇主要內(nèi)容包括:一個(gè)簡(jiǎn)單Web服務(wù)器的例子SHTTPD、一個(gè)簡(jiǎn)單網(wǎng)絡(luò)協(xié)議棧的例子SIP、一個(gè)簡(jiǎn)單防火墻的例子SIPFW。通過本篇的學(xué)習(xí),讀者可以全面了解一個(gè)完整可用的Linux網(wǎng)絡(luò)程序是如何編寫的。
本書學(xué)習(xí)建議
* 建議沒有基礎(chǔ)的讀者,從前至后順次閱讀,盡量不要跳躍。
* 書中的實(shí)例和示例建議讀者都要親自上機(jī)動(dòng)手實(shí)踐,學(xué)習(xí)效果會(huì)更好。
* 第4篇的內(nèi)容偏重于實(shí)戰(zhàn),這部分內(nèi)容在初期可以不需要全面掌握,只要理解思想即可,等讀者有了較多開發(fā)經(jīng)驗(yàn)后可進(jìn)一步研讀。
本書讀者對(duì)象
* 想全面學(xué)習(xí)Linux網(wǎng)絡(luò)編程的人員;
* Linux網(wǎng)絡(luò)編程從業(yè)人員;
* Linux網(wǎng)絡(luò)編程愛好者;
* 大中專院校的學(xué)生;
* 社會(huì)培訓(xùn)班的學(xué)員;
* 需要一本案頭必備手冊(cè)的開發(fā)人員。
本書作者
本書由宋敬彬主筆編寫。其他參與編寫的人員有陳超、陳鍇、陳佩霞、陳銳、黎華、李鵬欽、李森、李奕輝、李玉莉、劉仲義、盧香清、魯木應(yīng)、馬向東、麥廷琮、米永剛、歐陽(yáng)昉、綦彥臣、冉衛(wèi)華、宋永強(qiáng)、滕科平、王秀麗、王玉芹、魏瑩、魏宗壽、溫本利。
雖然我們對(duì)書中所述的內(nèi)容都盡量予以核實(shí),并多次進(jìn)行文字校對(duì),但可能還存在疏漏和不足之處,懇請(qǐng)讀者批評(píng)指正。
編著者
宋敬彬,海信集團(tuán)國(guó)家重點(diǎn)實(shí)驗(yàn)室高級(jí)工程師,海信數(shù)字家庭原型系統(tǒng)的主要設(shè)計(jì)及實(shí)現(xiàn)人。有15年的Linux編程經(jīng)驗(yàn),對(duì)Linux內(nèi)核和網(wǎng)絡(luò)協(xié)議棧十分熟悉。長(zhǎng)期從事嵌入式Linux設(shè)備、機(jī)頂盒產(chǎn)品和IGRS設(shè)備互聯(lián)的研究和開發(fā)工作。目前主要從事數(shù)字家庭系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。曾經(jīng)在技術(shù)期刊上發(fā)表過多篇技術(shù)論文,參加過國(guó)家863高性能集群服務(wù)器和電子發(fā)展基金的IPv6等項(xiàng)目。
第1篇 Linux網(wǎng)絡(luò)開發(fā)基礎(chǔ)
第1章 Linux操作系統(tǒng)概述
1.1 Linux發(fā)展歷史
1.1.1 Linux的誕生和發(fā)展
1.1.2 Linux名稱的由來
1.2 Linux的發(fā)展要素
1.2.1 UNIX操作系統(tǒng)
1.2.2 Minix操作系統(tǒng)
1.2.3 POSIX標(biāo)準(zhǔn)
1.3 Linux與UNIX的異同
1.4 操作系統(tǒng)類型選擇和內(nèi)核版本的選擇
1.4.1 常見的不同公司發(fā)行的Linux異同
1.4.2 內(nèi)核版本的選擇
1.5 Linux的系統(tǒng)架構(gòu)
1.5.1 Linux內(nèi)核的主要模塊
第1篇 Linux網(wǎng)絡(luò)開發(fā)基礎(chǔ)
第1章 Linux操作系統(tǒng)概述
1.1 Linux發(fā)展歷史
1.1.1 Linux的誕生和發(fā)展
1.1.2 Linux名稱的由來
1.2 Linux的發(fā)展要素
1.2.1 UNIX操作系統(tǒng)
1.2.2 Minix操作系統(tǒng)
1.2.3 POSIX標(biāo)準(zhǔn)
1.3 Linux與UNIX的異同
1.4 操作系統(tǒng)類型選擇和內(nèi)核版本的選擇
1.4.1 常見的不同公司發(fā)行的Linux異同
1.4.2 內(nèi)核版本的選擇
1.5 Linux的系統(tǒng)架構(gòu)
1.5.1 Linux內(nèi)核的主要模塊
1.5.2 Linux的文件結(jié)構(gòu)
1.6 GNU通用公共許可證
1.6.1 GPL許可證的歷史
1.6.2 GPL的自由理念
1.6.3 GPL的基本條款
1.6.4 關(guān)于GPL許可證的爭(zhēng)議
1.7 Linux軟件開發(fā)的可借鑒之處
1.8 小結(jié)
第2章 Linux編程環(huán)境
2.1 Linux環(huán)境下的編輯器
2.1.1 Vim使用簡(jiǎn)介
2.1.2 使用Vim建立文件
2.1.3 使用Vim編輯文本
2.1.4 Vim的格式設(shè)置
2.1.5 Vim配置文件.vimrc
2.1.6 使用其他編輯器
2.2 Linux下的GCC編譯器工具集
2.2.1 GCC簡(jiǎn)介
2.2.2 編譯程序的基本知識(shí)
2.2.3 單個(gè)文件編譯成執(zhí)行文件
2.2.4 編譯生成目標(biāo)文件
2.2.5 多文件編譯
2.2.6 預(yù)處理
2.2.7 編譯成匯編語言
2.2.8 生成和使用靜態(tài)鏈接庫(kù)
2.2.9 生成動(dòng)態(tài)鏈接庫(kù)
2.2.10 動(dòng)態(tài)加載庫(kù)
2.2.11 GCC常用選項(xiàng)
2.2.12 編譯環(huán)境的搭建
2.3 Makefile文件簡(jiǎn)介
2.3.1 一個(gè)多文件的工程例子
2.3.2 多文件工程的編譯
2.3.3 Makefile的規(guī)則
2.3.4 Makefile中使用變量
2.3.5 搜索路徑
2.3.6 自動(dòng)推導(dǎo)規(guī)則
2.3.7 遞歸make
2.3.8 Makefile中的函數(shù)
2.4 用GDB調(diào)試程序
2.4.1 編譯可調(diào)試程序
2.4.2 使用GDB調(diào)試程序
2.4.3 GDB常用命令
2.4.4 其他的GDB
2.5 小結(jié)
第3章 文件系統(tǒng)簡(jiǎn)介
3.1 Linux下的文件系統(tǒng)
3.1.1 Linux下文件的內(nèi)涵
3.1.2 文件系統(tǒng)的創(chuàng)建
3.1.3 掛接文件系統(tǒng)
3.1.4 索引節(jié)點(diǎn)inode
3.1.5 普通文件
3.1.6 設(shè)備文件
3.1.7 虛擬文件系統(tǒng)VFS
3.2 文件的通用操作方法
3.2.1 文件描述符
第4章 程序、進(jìn)程和線程 94
第2篇 Linux用戶層網(wǎng)絡(luò)編程
第5章 TCP/IP協(xié)議族簡(jiǎn)介 138
第6章應(yīng)用層網(wǎng)絡(luò)服務(wù)程序簡(jiǎn)介 167
第7章 TCP網(wǎng)絡(luò)編程基礎(chǔ) 181
第8章服務(wù)器和客戶端信息的獲取 209
第9章數(shù)據(jù)的IO和復(fù)用 236
第10章基于UDP協(xié)議的接收和發(fā)送 265
第11章高級(jí)套接字 290
第12章套接字選項(xiàng) 328
第13章原始套接字 374
第14章服務(wù)器模型選擇 410
第15章 IPv6簡(jiǎn)介 437
第3篇 Linux內(nèi)核網(wǎng)絡(luò)編程
第16章 Linux內(nèi)核中網(wǎng)絡(luò)部分結(jié)構(gòu)以及分布 464
第17章 netfilter框架內(nèi)報(bào)文處理 478
第4篇綜合案例
第18章一個(gè)簡(jiǎn)單Web服務(wù)器的例子SHTTPD 512
第19章一個(gè)簡(jiǎn)單網(wǎng)絡(luò)協(xié)議棧的例子SIP 558
第20章一個(gè)簡(jiǎn)單防火墻的例子SIPFW 620