《TCP\IP網(wǎng)絡(luò)編程基礎(chǔ)教程》是一本基于TCP/IP協(xié)議進(jìn)行計(jì)算機(jī)網(wǎng)絡(luò)編程方面的教科書,全書主要內(nèi)容包括基于套接字的TCP/IP網(wǎng)絡(luò)通信原理與模型、循環(huán)服務(wù)器軟件的實(shí)現(xiàn)原理與方法、服務(wù)器與客戶進(jìn)程中的并發(fā)機(jī)制、多進(jìn)程并發(fā)機(jī)制的實(shí)現(xiàn)原理與方法、多線程并發(fā)TCP服務(wù)器軟件的實(shí)現(xiàn)原理與方法、單線程并發(fā)機(jī)制的實(shí)現(xiàn)原理與方法、基于POOL和EPOLL的并發(fā)機(jī)制與實(shí)現(xiàn)方法、客戶/服務(wù)器系統(tǒng)中的死鎖問題八章內(nèi)容以及GCC編譯器簡介、課程實(shí)驗(yàn)兩個附錄。全書通過原理介紹與例程剖析的形式,系統(tǒng)介紹了UNIX/Linux與Windows環(huán)境下如何使用C語言基于TCP/IP協(xié)議與SocketAPI進(jìn)行網(wǎng)絡(luò)編程的詳細(xì)步驟與過程。
與同類教材相比,《TCP\IP網(wǎng)絡(luò)編程基礎(chǔ)教程》主要的特點(diǎn)為:在注重闡述TCP/IP網(wǎng)絡(luò)通信原理與套接字API編程原理的基礎(chǔ)上,通過對例程的深入剖析,深入淺出地介紹服務(wù)器與客戶軟件的編程技巧,同時(shí),在章節(jié)的編排上更加富有銜接性。全書內(nèi)容按照TCP/IP網(wǎng)絡(luò)通信原理一循環(huán)服務(wù)器軟件設(shè)計(jì)一并發(fā)服務(wù)器軟件設(shè)計(jì)一客戶/服務(wù)器系統(tǒng)中的死鎖問題一編譯環(huán)境一課程實(shí)驗(yàn)的順序,通過C語言例程剖析,由淺入深地介紹了基于TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)編程的原理與方法。通過以上連貫的章節(jié)編排,讀者能夠更加簡潔、系統(tǒng)地掌握網(wǎng)絡(luò)編程技術(shù)。
《TCP\IP網(wǎng)絡(luò)編程基礎(chǔ)教程》特別適合網(wǎng)絡(luò)工程、計(jì)算機(jī)科學(xué)技術(shù)與通信工程等專業(yè)的本、?茖W(xué)生和從事計(jì)算機(jī)網(wǎng)絡(luò)編程的技術(shù)人員,同時(shí)也可供其他專業(yè)的學(xué)生、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)愛好者,以及計(jì)算機(jī)應(yīng)用技術(shù)相關(guān)的工程技術(shù)人員參考。
第1章 基于套接字的TCP/IP網(wǎng)絡(luò)通信原理與模型
1.1 TCP/IP協(xié)議概述
1.1.1 TCP/IP參考模型
1.1.2 TCP/IP網(wǎng)絡(luò)通信中的客戶.服務(wù)器模型
1.1.3 TCP/IP參考模型的通信原理
1.2 基于套接字的網(wǎng)絡(luò)通信原理
1.2.1 套接字概述
1.2.2 基于套接字的TCP/IP網(wǎng)絡(luò)通信原理
1.2.3 基于套接字的TCP/IP網(wǎng)絡(luò)通信軟件實(shí)現(xiàn)流程
1.3 基于套接字的TCP/IP網(wǎng)絡(luò)通信過程中的相關(guān)問題
1.3.1 客戶算法中服務(wù)器套接字端點(diǎn)地址查找問題
1.3.2 客戶算法中本地端點(diǎn)地址的選擇問題
1.3.3 套接字端點(diǎn)地址的存儲結(jié)構(gòu)問題
1.3.4 客戶,服務(wù)器模型中的匯聚點(diǎn)問題
1.3.5 主機(jī)字節(jié)順序與網(wǎng)絡(luò)字節(jié)順序問題
1.3.6 IP地址與端口號的查找問題
1.3.7 由協(xié)議名查找協(xié)議號的問題
1.3.8 服務(wù)器算法中熟知端口的綁定問題
1.4 套接字API概述
1.4.1 BSDUNIx套接字API系統(tǒng)函數(shù)簡介
1.4.2 Windows套接字API擴(kuò)展系統(tǒng)函數(shù)簡介
1.5 基于套接字的TCP/IP網(wǎng)絡(luò)通信模型與實(shí)現(xiàn)方法
1.5.1 IJNIX/Linux環(huán)境下UDP套接字通信模型與實(shí)現(xiàn)方法
1.5.2 LINIX/Linux環(huán)境下TCP套接字通信模型與實(shí)現(xiàn)方法
1.5.3 Windows環(huán)境下UDP套接字通信模型與實(shí)現(xiàn)方法
1.5.4 Windows環(huán)境下TCP套接字通信模型與實(shí)現(xiàn)方法
1.6 本章小結(jié)
本章習(xí)題
第2章 循環(huán)服務(wù)器軟件的實(shí)現(xiàn)原理與方法
2.1 客戶/服務(wù)器模型中服務(wù)器軟件實(shí)現(xiàn)的復(fù)雜性
2.1.1服務(wù)器設(shè)功能需求的復(fù)雜性
2.1.2服務(wù)器類型的復(fù)雜性
2.2 循環(huán)服務(wù)器的進(jìn)程結(jié)構(gòu)
2.2.1 循環(huán)LTDP服務(wù)器的進(jìn)程結(jié)構(gòu)
2.2.2 循環(huán)TCP服務(wù)器的進(jìn)程結(jié)構(gòu)
2.3 循環(huán)服務(wù)器軟件的設(shè)計(jì)流程
2.3.1 循環(huán)UDP服務(wù)器軟件的設(shè)計(jì)流程
2.3.2 循環(huán)TCP服務(wù)器軟件的設(shè)計(jì)流程
2.4 基于循環(huán)服務(wù)器的網(wǎng)絡(luò)通信例程剖析
2.4.1 相關(guān)系統(tǒng)函數(shù)及其調(diào)用方法簡介
2.4.2 UNIX/Linux環(huán)境下基于TCP套接字的例程剖析
2.4.3 Windows環(huán)境下基于TCP套接字的例程剖析
2.4.4 UNIX/Linux環(huán)境下基于UDP套接字的例程剖析
2.4.5 Windows環(huán)境下基于UDP套接字的例程剖析
2.4.6 LINIX/Linux環(huán)境下基于TCP套接字的文件傳輸例程剖析
2.4.7 LINIX/Linux環(huán)境下基于TCP套接字的音頻傳輸例程剖析.
2.4.8 Windows環(huán)境下基于TCP套接字的圖像傳輸例程剖析
2.4.9 Windows環(huán)境下基于TCP套接字的視頻傳輸例程剖析
2.5 本章小結(jié)
本章習(xí)題
第3章 服務(wù)器與客戶進(jìn)程中的并發(fā)機(jī)制
3.1服務(wù)器與客戶進(jìn)程中的并發(fā)概念
3.1.1 服務(wù)器進(jìn)程中的并發(fā)問題
3.1.2 客戶進(jìn)程中的并發(fā)問題
3.1.3 服務(wù)器與客戶端并發(fā)性的實(shí)現(xiàn)方法
3.1.4 循環(huán)服務(wù)器與并發(fā)服務(wù)器
3.1.5 多進(jìn)程與多線程并發(fā)概念
3.1.6 并發(fā)等級
3.2 UNIX/Linux環(huán)境下基于多進(jìn)程并發(fā)機(jī)制
3.2.1 創(chuàng)建一個新進(jìn)程
3.2.2 終止一個進(jìn)程
3.2.3 獲得一個進(jìn)程的進(jìn)程標(biāo)識
3.2.4 獲得一個進(jìn)程的父進(jìn)程的進(jìn)程標(biāo)識
3.2.5 僵尸進(jìn)程的清除
3.2.6 多進(jìn)程例程剖析
3.3 UNIX/Linux環(huán)境下基于多線程的并發(fā)機(jī)制
3.3.1 創(chuàng)建一個新線程
3.3.2 設(shè)置線程的運(yùn)行屬性
3.3.3 終止一個線程
3.3.4 獲得一個線程的線程標(biāo)識
3.3.5 多線程例程剖析
3.4 windows環(huán)境下基于多進(jìn)程的并發(fā)機(jī)制
3.4.1 創(chuàng)建一個新進(jìn)程
3.4.2 打開一個進(jìn)程
3.4.3 終止/關(guān)閉一個進(jìn)程
3.4.4 獲得進(jìn)程的可執(zhí)行文件或DLL對應(yīng)的句柄
3.4.5 獲取與指定窗口關(guān)聯(lián)在一起的一個進(jìn)程和線程標(biāo)識符
3.4.6 獲取進(jìn)程的運(yùn)行時(shí)間
3.4.7 獲取當(dāng)前進(jìn)程ID
3.4.8 等待子進(jìn)程/子線程的結(jié)束
3.4.9 多進(jìn)程例程剖析
3.5 Windows環(huán)境下基于多線程的并發(fā)機(jī)制
3.5.1 在本地進(jìn)程中創(chuàng)建~個新線程
3.5.2 在遠(yuǎn)程進(jìn)程中創(chuàng)建一個新線程
3.5.3 獲。O(shè)置線程的優(yōu)先級
3.5.4 終止一個線程
3.5.5 掛起/啟動一個線程
3.5.6 獲得一個線程的標(biāo)識
3.5.7 多線程例程剖析
3.6 從線程/進(jìn)程分配技術(shù)
3.6.1 從線程/進(jìn)程預(yù)分配技術(shù)
3.6.2 延遲的從線程/進(jìn)程分配技術(shù)
3.6.3 兩種從線程/進(jìn)程分配技術(shù)的結(jié)合
3.7 基于多進(jìn)程與基于多線程的并發(fā)機(jī)制的性能比較
3.7.1 多進(jìn)程與多線程的任務(wù)執(zhí)行效率比較
3.7.2 多進(jìn)程與多線程的創(chuàng)建與銷毀效率比較
3.8 本章小結(jié)
本章習(xí)題
第4章 多進(jìn)程并發(fā)機(jī)制的實(shí)現(xiàn)原理與方法
4.1 多進(jìn)程并發(fā)TCP服務(wù)器與客戶端進(jìn)程結(jié)構(gòu)
4.1.1 多進(jìn)程并發(fā)TCP服務(wù)器進(jìn)程結(jié)構(gòu)
4.1.2 多進(jìn)程并發(fā)客戶端進(jìn)程結(jié)構(gòu)
4.2 UNIx/Linux環(huán)境下多進(jìn)程并發(fā)TCP服務(wù)器軟件設(shè)計(jì)流程
4.2.1 不固定進(jìn)程數(shù)的并發(fā)TCP服務(wù)器軟件設(shè)計(jì)流程
4.2.2 固定進(jìn)程數(shù)的并發(fā)TCP服務(wù)器軟件設(shè)計(jì)流程
4.3 UNIX/Linux環(huán)境下多進(jìn)程并發(fā)TCP服務(wù)器通信實(shí)現(xiàn)例程
4.3.1 不固定進(jìn)程數(shù)的多進(jìn)程并發(fā)TCP服務(wù)器通信實(shí)現(xiàn)例程
4.3.2 固定進(jìn)程數(shù)的多進(jìn)程并發(fā)TCP服務(wù)器通信實(shí)現(xiàn)例程
4.3.3 UNIX/Linux服務(wù)器與Windows客戶端通信實(shí)現(xiàn)例程
4.3.4 基于SMTP和POP3協(xié)議的電子郵件收發(fā)實(shí)現(xiàn)例程
4.4 本章小結(jié)
本章習(xí)題
第5章 多線程并發(fā)TCP服務(wù)器軟件的實(shí)現(xiàn)原理與方法
5.1線程之間的協(xié)調(diào)與同步
5.1.1 UNIX/Linux環(huán)境下線程之間的協(xié)調(diào)與同步
5.1.2 Windows環(huán)境下線程之間的協(xié)調(diào)與同步
5.2 基于多線程的并發(fā)TCP服務(wù)器軟件設(shè)計(jì)流程
5.2.1 不固定線程數(shù)的并發(fā)TcP服務(wù)器軟件設(shè)計(jì)流程
5.2.2 固定線程數(shù)的并發(fā)TCP服務(wù)器軟件設(shè)計(jì)流程
5.3 多線程并發(fā)TCP服務(wù)器實(shí)現(xiàn)例程
5.3.1 UNIX/Linux環(huán)境下多線程并發(fā)TCP服務(wù)器實(shí)現(xiàn)例程
5.3.2 Windows環(huán)境下多線程并發(fā)TCP服務(wù)器實(shí)現(xiàn)例程
5.4 本章小結(jié)
本章習(xí)題
第6章 單線程并發(fā)機(jī)制的實(shí)現(xiàn)原理與方法
6.1 單線程并發(fā)TCP服務(wù)器與客戶端的進(jìn)程結(jié)構(gòu)
6.1.1 單線程并發(fā)TCP服務(wù)器的進(jìn)程結(jié)構(gòu)
6.1.2 單線程并發(fā)TCP客戶端的進(jìn)程結(jié)構(gòu)
6.2 單線程并發(fā)TCP服務(wù)器軟件的設(shè)計(jì)流程
6.2.1 IJNIX/Linux環(huán)境下單線程并發(fā)TCP服務(wù)器軟件設(shè)計(jì)流程
6.2.2 Windows環(huán)境下單線程并發(fā)TcP服務(wù)器軟件設(shè)計(jì)流程
6.3 單線程并發(fā)TCP服務(wù)器實(shí)現(xiàn)例程
6.3.1 UNIX/Linux環(huán)境下單線程并發(fā)TCP服務(wù)器實(shí)現(xiàn)例程
6.3.2 Windows環(huán)境下單線程并發(fā)TCP服務(wù)器實(shí)現(xiàn)例程
6.3.3 UNIX/Linux環(huán)境下單線程并發(fā)TCP客戶端實(shí)現(xiàn)例程
6.3.4 Windows環(huán)境下單線程并發(fā)TcP客戶端實(shí)現(xiàn)例稗
6.4 本章小結(jié)
本章習(xí)題
第7章 基于POOL和EPOLL的并發(fā)機(jī)制與實(shí)現(xiàn)方法
7.1 P00L簡介
7.1.1 POOL的定義
7.1.2 線程池的基本工作原理
7.1.3 線程池的應(yīng)用范圍
7.1.4 使用線程池的風(fēng)險(xiǎn)
7.2 UNIX/Linux環(huán)境下線程池的C語言實(shí)現(xiàn)例程
7.2.1 線程池的主要組成部分
7.2.2 線程池的C語言實(shí)現(xiàn)例程剖析
7.2.3 基于線程池的并發(fā)TCP服務(wù)器例程
7.4 EPOLL簡介
7.4.1 EPOLL的定義
7.4.2 EPOLL的基本接口函數(shù)
7.4.3 EPOLL的事件模式
7.4.4 EPOLL的工作原理
7.5 基于EPOLL線程池的C語言例程
7.5.1 基于EPOLL線程池的C語言例程剖析
7.5.2 基于EPOLL的并發(fā)TCP服務(wù)器例程
7.6 本章小結(jié)
本章習(xí)題
第8章 客戶/服務(wù)器系統(tǒng)中的死鎖問題
8.1 死鎖的定義
8.2 產(chǎn)生死鎖的原因
8.2.1 競爭資源引起進(jìn)程死鎖
8.2.2 進(jìn)程推進(jìn)順序不當(dāng)引起死鎖
8.3 產(chǎn)生死鎖的必要條件
8.4 處理死鎖的基本方法
8.5 存在死鎖問題的多線程例程
8.6 本章小結(jié)
本章習(xí)題
附錄A GCC編譯器簡介
A.1 GCC編譯器所支持的源程序格式
A.2 GCC編譯選項(xiàng)解析
A.2.1 GCC編譯洗項(xiàng)分類
A.2.2 GCC編譯過程解析
A.2.3 多個程序文件的編譯
A.3 GCC編譯器的安裝
附錄B課程實(shí)驗(yàn)
B.1 課程實(shí)驗(yàn)報(bào)告模板
B.2 《Socket API函數(shù)調(diào)用方法》課程實(shí)驗(yàn)
B.3 《電子郵件收發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》課程實(shí)驗(yàn)
B.4 《文本聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》課程實(shí)驗(yàn)
B.5 《多媒體網(wǎng)絡(luò)聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》課程實(shí)驗(yàn)
參考文獻(xiàn)