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