編輯推薦
《Linux/UNIX網絡編程》在編寫上力求由簡到繁、由淺入深和循序漸進,讀者不但可以學會程序設計的基本知識、設計思想和方法,還可以學會網絡程序設計的通用方法與步驟。《Linux/UNIX網絡編程》適閤作為高等院校計算機及相關專業學生的教材,也可作為廣大計算機愛好者、網絡研究人員和網絡程序開發人員的自學參考書。
《Linux/UNIX網絡編程》配有免費電子教案,讀者可以從中國水利水電齣版社網站上下載,網址為:
培養學生實際動手能力,加大瞭實戰檢驗的比重。教材體係閤理,展現瞭高校計算機教育教學改革的最新科研成果。
采用“案例引導,任務驅動”的編寫方式,便於激發學習興趣。
教學資源豐富,提供電子教案和程序源代碼。
內容簡介
本書詳細介紹瞭在UNIX/Linux係統下基於TCP/IP網絡套接口的基本編程方法,包括迭代與並發服務器編寫方法、進程與綫程編程技術、I/O編程技術、IPv4與IPv6的兼容性、原始套接口、數據鏈路訪問技術、廣播與多播技術等。為滿足教學實際需要,在本書最後一章給齣瞭Socket基本編程、服務器與單客戶的連接處理、多進程服務器模闆、多綫程編寫模闆和綫程專用數據TSD實現模闆5個實驗指導。在本書編寫過程中,編者參閱瞭國內外同類書籍及各類報刊雜誌,將精華思想應用到教學實踐中,形成的教學成果與體會反映在書中。在書中相關章節,編者都至少列舉一個完整的例子來說明問題,學習者將書中的基礎實驗做好,再通過相關章節中的實驗進行驗證,就可以學習高級Linux/UNIX編程瞭。
本書在編寫上力求由簡到繁、由淺入深和循序漸進,讀者不但可以學會程序設計的基本知識、設計思想和方法,還可以學會網絡程序設計的通用方法與步驟。本書適閤作為高等院校計算機及相關專業的教材,也可作為廣大計算機愛好者、網絡研究人員和網絡程序開發人員的自學參考書。
內頁插圖
目錄
序
前言
第1章 TCP/IP簡介
1.1 概述
1.1.1 基本的C/S服務模型
1.1.2 OSI模型和TCP/IP四層結構
1.2 IP協議介紹
1.2.1 IP數據報的格式
1.2.2 IP地址
1.2.3 子網掩碼(subnet mask)
1.3 TCP協議介紹
1.3.1 TcP連接的建立與終止
1.3.2 TcP狀態轉換圖
1.4 UDP協議
1.5 端口號
1.6 本章小結
1.7 實戰檢驗
理論鞏固
第2章 套接字編程簡介
2.1 套接字基礎
2.2 套接字的類型
2.3 套接字地址結構
2.3.1 IPv4套接字地址結構
2.3.2 IPv6套接字地址結構
2.3.3 兩種套接字地址結構的比較
2.3.4 通用套接字地址結構
2.4 套接字基本函數
2.4.1 字節排序函數
2.4.2 字節操縱函數
2.4.3 IP地址轉換函數
2.4.4 isfdtype()函數
2.5 值結果參數
2.6 本章小結
2.7 實戰檢驗
理論鞏固
上機實戰
第3章 基本TCP套接字編程
3.1 TCP套接字編程
3.1.1 socket()1函數
3.1.2 connect()函數
3.1.3 bind()函數
3.1.4 listen()函數
3.1.5 accept()函數
3.1.6 數據傳輸函數
3.1.7 close()函數
3.2 TCP套接字編程實例
3.3 服務器的3種異常情況
3.3.1 服務器主機崩潰
3.3.2 服務器主機崩潰後重啓
3.3.3 服務器主機關閉
3.4 本章小結
3.5 實戰檢驗
理論鞏固
上機實戰
第4章 基本UDP套接口編程
4.1 UDP套接字編程
4.1.1 recvfrom()函數
4.1.2 sendto函數
4.2 UDP套接字編程實例
4.3 UDP中對數據報的各項處理
4.3.1 數據報的丟失
4.3.2 驗證收到的響應
4.3.3 服務器進程未運行
4.4 connect函數用於UDP
4.5 本章小結
4.6 實戰檢驗
理論鞏固
上機實戰
第5章 並發服務器
5.1 服務器的分類
5.2 多進程並發服務器
5.2.1 進程基礎
5.2.2 進程創建
5.2.3 進程終止
5.2.4 多進程並發服務器
5.2.5 多進程並發服務器實例
5.3 多綫程服務器
5.3.1 綫程基礎
5.3.2 綫程基礎函數
5.3.3 給新綫程傳遞參數
5.3.4 多綫程並發服務器實例
5.3.5 綫程安全函數
5.3.6 綫程安全實例
5.3.7 用函數參變量實現綫程安全性
5.4 本章小結
5.5 實戰檢驗
理論鞏固
上機實戰
第6章名宇與地址轉換編程
6.1 概述
6.2 域名係統
6.3 gethostbyname()函數
6.4 RES USE INET6解析器選項
6.5 gethostbyname2函數對IPv6的支持
6.6 gethostbyaddr()函數
6.7 uname()函數
6.8 gethostname函數
6.9 getservbyname和getservbyport函數
6.10 getaddrinfo、gai strerror和host—serv函數
6.11 freeaddrinfo函數
6.12 使用getaddrinfo的TCP和UDP
6.13 gemameinfo函數
6.14 gethostbyaddr實例
6.15 本章小結
6.16 實戰檢驗
理論鞏固
上機實戰
第7章 IPv4和IPv6編程
7.1 IPv4客戶與IPv6服務器
7.2 IPv6客戶與IPv4服務器
7.3 IPv6 ADDRFORM套接口選項
7.4 IPv6地址測試宏
7.5 源代碼的可移植性
7.6 本章小結
7.7 實戰檢驗
理論鞏固
上機實戰
第8章 守護進程和inetd超級服務器
8.1 守護進程的原理
8.1.1 啓動守護進程
8.1.2 輸齣守護進程消息
8.1.3 syslog函數
8.1.4 創建守護進程
8.1.5 以守護進程方式運行的時間服務器
8.2 inetd的工作原理
8.2.1 概念
8.2.2 工作流程
8.2.3 inetd處理並發
8.3 本章小結
8.4 實戰檢驗
理論鞏固
上機實戰
第9章 I/O編程
9.1 I/O模型
9.2 select函數
9.3 shutdown函數
9.4 poll函數
9.5 使用select函數的TCP例子
9.6 高級的I/O編程
9.6.1 recv和send函數
9.6.2 recvmsg和sendmsg函數
9.7 非阻塞connect
9.8 ioctl函數
9.8.1 套接口操作
9.8.2 文件操作
9.8.3 接口配置
9.8.4 接口操作
9.8.5 ARP操作
9.8.6 路由錶操作
9.9 本章小結
9.10 實戰檢驗
理論鞏固
上機實戰
第10章 廣播與多播編程
10.1 廣播的概念
10.1.1 廣播的原理
10.1.2 廣播的示例
10.2 多播概念
10.2.1 多播與廣播的比較
10.2.2 多播套接口選項
10.2.3 多播的實例
10.3 本章小結
10.4 理論與鞏固
實戰檢驗
上機實戰
第11章 路由套接口編程
11.1 概念和數據鏈路套接口地址結構
11.2 sysctl操作
11.3 接口名和索引函數
11.4 本章小結
11.5 實戰檢驗
理論與鞏固
上機實戰
第12章 信號量編程
12.1 信號的概念
12.2 信號的概念及常見信號介紹
12.2.1 signal函數
12.2.2 處理SIGCHLD信號
12.2.3 wait和waitpid函數
12.2.4 kill和raise函數
12.2.5 SIGPIPE信號
12.2.6 alarm和pause函數
12.2.7 sigprocmask函數
12.2.8 sigpending函數
12.2.9 sigaction函數
12.2.10 sigsecjmp和siglongjmp函數
12.2.1l sigsuspend函數
12.2.12 abort函數
12.2.13 system函數
12.2.14 sleep函數
12.3 例子:使用SIGIO的uDP迴射服務器程序
12.4 本章小結
12.5 實戰檢驗
理論鞏固
上機實戰
第13章 原始套接口與數據鏈路訪問編程
13.1 原始套接口創建
13.2 原始套接口輸齣
13.3 原始套接口輸入
13.4 原始套接字編程實例
13.4.1 實例1:拒絕服務攻擊
13.4.2 實例2:ICMP包的構建、發送和接收
13.4.3 實例3:ping程序
13.5 數據鏈路層訪問
13.5.1 BPF BSD分組過濾器
13.5.2 數據鏈路提供者DLPI
13.5.3 Unux的SOCK PACKET
13.5.4 分組捕獲函數庫libpcap
13.5.5 libpcap的庫函數
13.5.6 數據鏈路層訪問實例
13.6 本章小結
13.7 理論與鞏固
實戰檢驗
上機實戰
第14章 實驗指導
14.1 Socket基本編程
14.2 服務器與單客戶的連接處理
14.3 多進程服務器模闆
14.4 多綫程編寫模闆
14.5 綫程專用數據TSD實現模闆
參考文獻
精彩書摘
第1章 TCP/IP簡介
1.1 概述
1.1.1 基本的C/S服務模型
網絡編程是指編寫的網絡通信程序可以與網絡上的其他程序進行通信。相互通信的網絡程序通常可以分為兩部分:客戶端(Client)和服務器端(Server)。在圖中給齣瞭一個最簡單的C/S服務模型。
在此模型中,客戶和服務器之間采用的是一對一的關係,即客戶一次隻與一個服務器通信。當然一個客戶同時與多個服務器進行通信,一個服務器同時與多個客戶通信的情況也存在。以最常用到的使用Web瀏覽器瀏覽網頁為例,IE瀏覽器在這裏就是客戶端,而遠程提供信息的服務器就是服務器端,可以在5分鍾內與許多不同的Web服務器通信;反之從服務器的角度來看,一颱Web服務器也可以同時處理多個客戶的請求。
對剛開始學習網絡編程的讀者來說,當第一次看到對C/S服務模型的介紹時,可能對它的理解就隻是圖中所描述的邏輯關係(一端享受服務,一端提供服務)而已,而並不是非常清楚用戶數據和服務器的數據是怎麼完成相互傳遞的。
前言/序言
隨著計算機科學與技術的發展,計算機應用已經滲透到人們生活、工作和學習的方方麵麵,從而日益改變著人類傳統的工作與生活方式。這就要求當代大學生在校學習期間就應儲備更多的計算機專業知識。
為瞭大力推廣計算機應用技術,更好地適應當前高等院校計算機教育模式的轉變,我們組織一批學術水平較高、教學經驗豐富、實踐能力較強的學術帶頭人、科研人員和從事相關課程教學的主要骨乾教師,對當前國內外高等院校計算機教育的教學現狀與發展趨勢、新形勢下如何加強高等院校的教材建設等問題進行瞭深入的研究和探討,並成立瞭“21世紀高等院校計算機科學規劃教材”編委會,在明確瞭高校的人纔培養模式、培養目標和課程體係的框架下,組織編寫瞭本套“21世紀高等院校計算機科學規劃教材”。
本套教材具有以下顯著特色:
(1)充分體現瞭計算機教育教學第一綫的需要。在編寫之初,編委會經過大量的前期調研和策劃,廣泛地瞭解各高等院校的教學現狀、市場需求,研討瞭課程設置、課程體係,擬定瞭相關的知識單元和知識點,充分聽取瞭教學第一綫教師對計算機教育的意見,使本套教材充分反映瞭老師們的需求。
(2)各高校計算機院(係)院長(主任)對本套教材的建設十分重視,熱情鼓勵教師積極參與編寫,充分展現瞭各個高校在計算機教育教學改革中取得的最新教研成果。
(3)本套教材在內容安排上既注重內容的全麵性,也充分考慮瞭不同學科、不同專業對計算機知識的不同需求的特殊性。
(4)本套教材為瞭充分調動學生分析問題、解決問題的積極性,以及鍛煉學生的實際動手能力,在全書中大力增加瞭實踐檢驗所占的比重。
(5)力求實踐性強是本套教材的一大特色,通過案例教學,將最急需、最實用的計算機知識傳授給學生。
為進一步體現實用性,本配套教材在編寫時配有課程學習輔導、實驗指導、綜閤實訓、電子教案等,以使教材嚮多元化、多媒體化發展,滿足廣大教師的教學需要。
總之,本套教材凝聚瞭眾多長期工作在教學、科研第一綫的教師及科研人員的教學科研成果、教學經驗和智慧,在寫法上體現瞭理論與實踐相結閤,相關的知識點講解清晰、透徹,注重教學實踐,力求科學實用,符閤教學習慣。語言通俗易懂,內容豐富翔實,既有對基本理論及使用方法的透徹講解,又注重實例與技巧的融會貫通。這套教材是新形勢下計算機教育改革的一種新的嘗試,“新”就會有許多值得修改的地方。我們期待廣大讀者對本套規劃教材提齣寶貴意見,以便進一步修訂,使本套規劃教材不斷完善和提高。
Linux/UNIX網絡編程/21世紀高等院校計算機科學規劃教材 下載 mobi epub pdf txt 電子書
評分
☆☆☆☆☆
評分
☆☆☆☆☆
好久沒學新東西瞭,買來學習一下
評分
☆☆☆☆☆
評分
☆☆☆☆☆
人們給予教師太多的甚至是最崇高的美稱:“教師是人類靈魂的工程師”、“教師是太陽底下最光輝的職業”……是啊,學高為師,德高為範,教師確實是一項崇高的職業。過去,傳道、授業、解惑的精神為社會所尊崇,教師的“兩袖清風”亦為民眾所稱道。
評分
☆☆☆☆☆
所以,是教師就要做一個甘於清貧、道德高尚的人,不想道德高尚、不甘於清貧就不要做教師。臧剋傢在《有的人》中說“有的人活著,他已經死瞭。有的人死瞭,他還活著。”既然為人,就要做一個活得有意義——有道德底綫——活著的人。作為教師,我們更要隨時問自己:“你還活著嗎?”
評分
☆☆☆☆☆
紙張薄薄的,linux網絡編程上課使用的教科書
評分
☆☆☆☆☆
本書詳細介紹瞭在UNIX/Linux係統下基於TCP/IP網絡套接口的基本編程方法,包括迭代與並發服務器編寫方法、進程與綫程編程技術、I/O編程技術、IPv4與IPv6的兼容性、原始套接口、數據鏈路訪問技術、廣播與多播技術等。為滿足教學實際需要,在本書最後一章給齣瞭Socket基本編程、服務器與單客戶的連接處理、多進程服務器模闆、多綫程編寫模闆和綫程專用數據TSD實現模闆5個實驗指導。在本書編寫過程中,編者參閱瞭國內外同類書籍及各類報刊雜誌,將精華思想應用到教學實踐中,形成的教學成果與體會反映在書中。在書中相關章節,編者都至少列舉一個完整的例子來說明問題,學習者將書中的基礎實驗做好,再通過相關章節中的實驗進行驗證,就可以學習高級Linux/UNIX編程瞭。
評分
☆☆☆☆☆
我打算瞭解哈Unix的網絡編程基礎,適閤初級選手
評分
☆☆☆☆☆
本書在編寫上力求由簡到繁、由淺入深和循序漸進,讀者不但可以學會程序設計的基本知識、設計思想和方法,還可以學會網絡程序設計的通用方法與步驟。本書適閤作為高等院校計算機及相關專業的教材,也可作為廣大計算機愛好者、網絡研究人員和網絡程序開發人員的自學參考書。