TCP/IP網路編程基礎教程

TCP/IP網路編程基礎教程

《TCP/IP網路編程基礎教程》是2017年北京理工大學出版社出版的圖書。

基本介紹

  • 書名:TCP/IP網路編程基礎教程
  • 作者:王雷
  • 出版社:北京理工大學出版社
  • 出版時間:2017年
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787568237628
內容簡介,圖書目錄,

內容簡介

《TCP\IP網路編程基礎教程》是一本基於TCP/IP協定進行計算機網路編程方面的教科書,全書主要內容包括基於套接字的TCP/IP網路通信原理與模型、循環伺服器軟體的實現原理與方法、伺服器與客戶進程中的並發機制、多進程並發機制的實現原理與方法、多執行緒並發TCP伺服器軟體的實現原理與方法、單執行緒並發機制的實現原理與方法、基於POOL和EPOLL的並發機制與實現方法、客戶/伺服器系統中的死鎖問題八章內容以及GCC編譯器簡介、課程實驗兩個附錄。全書通過原理介紹與例程剖析的形式,系統介紹了UNIX/Linux與Windows環境下如何使用C語言基於TCP/IP協定與SocketAPI進行網路編程的詳細步驟與過程。
與同類教材相比,《TCP\IP網路編程基礎教程》主要的特點為:在注重闡述TCP/IP網路通信原理與套接字API編程原理的基礎上,通過對例程的深入剖析,深入淺出地介紹伺服器與客戶軟體的編程技巧,同時,在章節的編排上更加富有銜接性。全書內容按照TCP/IP網路通信原理一循環伺服器軟體設計一併發伺服器軟體設計一客戶/伺服器系統中的死鎖問題一編譯環境一課程實驗的順序,通過C語言例程剖析,由淺入深地介紹了基於TCP/IP協定進行網路編程的原理與方法。通過以上連貫的章節編排,讀者能夠更加簡潔、系統地掌握網路編程技術。
《TCP\IP網路編程基礎教程》特別適合網路工程、計算機科學技術與通信工程等專業的本、專科學生和從事計算機網路編程的技術人員,同時也可供其他專業的學生、計算機網路技術愛好者,以及計算機套用技術相關的工程技術人員參考。

圖書目錄

第1章 基於套接字的TCP/IP網路通信原理與模型
1.1 TCP/IP協定概述
1.1.1 TCP/IP參考模型
1.1.2 TCP/IP網路通信中的客戶.伺服器模型
1.1.3 TCP/IP參考模型的通信原理
1.2 基於套接字的網路通信原理
1.2.1 套接字概述
1.2.2 基於套接字的TCP/IP網路通信原理
1.2.3 基於套接字的TCP/IP網路通信軟體實現流程
1.3 基於套接字的TCP/IP網路通信過程中的相關問題
1.3.1 客戶算法中伺服器套接字端點地址查找問題
1.3.2 客戶算法中本地端點地址的選擇問題
1.3.3 套接字端點地址的存儲結構問題
1.3.4 客戶,伺服器模型中的匯聚點問題
1.3.5 主機位元組順序與網路位元組順序問題
1.3.6 IP位址與連線埠號的查找問題
1.3.7 由協定名查找協定號的問題
1.3.8 伺服器算法中熟知連線埠的綁定問題
1.4 套接字API概述
1.4.1 BSDUNIx套接字API系統函式簡介
1.4.2 Windows套接字API擴展系統函式簡介
1.5 基於套接字的TCP/IP網路通信模型與實現方法
1.5.1 IJNIX/Linux環境下UDP套接字通信模型與實現方法
1.5.2 LINIX/Linux環境下TCP套接字通信模型與實現方法
1.5.3 Windows環境下UDP套接字通信模型與實現方法
1.5.4 Windows環境下TCP套接字通信模型與實現方法
1.6 本章小結
本章習題
第2章 循環伺服器軟體的實現原理與方法
2.1 客戶/伺服器模型中伺服器軟體實現的複雜性
2.1.1伺服器設功能需求的複雜性
2.1.2伺服器類型的複雜性
2.2 循環伺服器的進程結構
2.2.1 循環LTDP伺服器的進程結構
2.2.2 循環TCP伺服器的進程結構
2.3 循環伺服器軟體的設計流程
2.3.1 循環UDP伺服器軟體的設計流程
2.3.2 循環TCP伺服器軟體的設計流程
2.4 基於循環伺服器的網路通信例程剖析
2.4.1 相關係統函式及其調用方法簡介
2.4.2 UNIX/Linux環境下基於TCP套接字的例程剖析
2.4.3 Windows環境下基於TCP套接字的例程剖析
2.4.4 UNIX/Linux環境下基於UDP套接字的例程剖析
2.4.5 Windows環境下基於UDP套接字的例程剖析
2.4.6 LINIX/Linux環境下基於TCP套接字的檔案傳輸例程剖析
2.4.7 LINIX/Linux環境下基於TCP套接字的音頻傳輸例程剖析.
2.4.8 Windows環境下基於TCP套接字的圖像傳輸例程剖析
2.4.9 Windows環境下基於TCP套接字的視頻傳輸例程剖析
2.5 本章小結
本章習題
第3章 伺服器與客戶進程中的並發機制
3.1伺服器與客戶進程中的並發概念
3.1.1 伺服器進程中的並發問題
3.1.2 客戶進程中的並發問題
3.1.3 伺服器與客戶端並發性的實現方法
3.1.4 循環伺服器與並發伺服器
3.1.5 多進程與多執行緒並發概念
3.1.6 並發等級
3.2 UNIX/Linux環境下基於多進程並發機制
3.2.1 創建一個新進程
3.2.2 終止一個進程
3.2.3 獲得一個進程的進程標識
3.2.4 獲得一個進程的父進程的進程標識
3.2.5 殭屍進程的清除
3.2.6 多進程例程剖析
3.3 UNIX/Linux環境下基於多執行緒的並發機制
3.3.1 創建一個新執行緒
3.3.2 設定執行緒的運行屬性
3.3.3 終止一個執行緒
3.3.4 獲得一個執行緒的執行緒標識
3.3.5 多執行緒例程剖析
3.4 windows環境下基於多進程的並發機制
3.4.1 創建一個新進程
3.4.2 打開一個進程
3.4.3 終止/關閉一個進程
3.4.4 獲得進程的執行檔或DLL對應的句柄
3.4.5 獲取與指定視窗關聯在一起的一個進程和執行緒標識符
3.4.6 獲取進程的運行時間
3.4.7 獲取當前進程ID
3.4.8 等待子進程/子執行緒的結束
3.4.9 多進程例程剖析
3.5 Windows環境下基於多執行緒的並發機制
3.5.1 在本地進程中創建~個新執行緒
3.5.2 在遠程進程中創建一個新執行緒
3.5.3 獲取/設定執行緒的優先權
3.5.4 終止一個執行緒
3.5.5 掛起/啟動一個執行緒
3.5.6 獲得一個執行緒的標識
3.5.7 多執行緒例程剖析
3.6 從執行緒/進程分配技術
3.6.1 從執行緒/進程預分配技術
3.6.2 延遲的從執行緒/進程分配技術
3.6.3 兩種從執行緒/進程分配技術的結合
3.7 基於多進程與基於多執行緒的並發機制的性能比較
3.7.1 多進程與多執行緒的任務執行效率比較
3.7.2 多進程與多執行緒的創建與銷毀效率比較
3.8 本章小結
本章習題
第4章 多進程並發機制的實現原理與方法
4.1 多進程並發TCP伺服器與客戶端進程結構
4.1.1 多進程並發TCP伺服器進程結構
4.1.2 多進程並發客戶端進程結構
4.2 UNIx/Linux環境下多進程並發TCP伺服器軟體設計流程
4.2.1 不固定進程數的並發TCP伺服器軟體設計流程
4.2.2 固定進程數的並發TCP伺服器軟體設計流程
4.3 UNIX/Linux環境下多進程並發TCP伺服器通信實現例程
4.3.1 不固定進程數的多進程並發TCP伺服器通信實現例程
4.3.2 固定進程數的多進程並發TCP伺服器通信實現例程
4.3.3 UNIX/Linux伺服器與Windows客戶端通信實現例程
4.3.4 基於SMTP和POP3協定的電子郵件收發實現例程
4.4 本章小結
本章習題
第5章 多執行緒並發TCP伺服器軟體的實現原理與方法
5.1執行緒之間的協調與同步
5.1.1 UNIX/Linux環境下執行緒之間的協調與同步
5.1.2 Windows環境下執行緒之間的協調與同步
5.2 基於多執行緒的並發TCP伺服器軟體設計流程
5.2.1 不固定執行緒數的並發TcP伺服器軟體設計流程
5.2.2 固定執行緒數的並發TCP伺服器軟體設計流程
5.3 多執行緒並發TCP伺服器實現例程
5.3.1 UNIX/Linux環境下多執行緒並發TCP伺服器實現例程
5.3.2 Windows環境下多執行緒並發TCP伺服器實現例程
5.4 本章小結
本章習題
第6章 單執行緒並發機制的實現原理與方法
6.1 單執行緒並發TCP伺服器與客戶端的進程結構
6.1.1 單執行緒並發TCP伺服器的進程結構
6.1.2 單執行緒並發TCP客戶端的進程結構
6.2 單執行緒並發TCP伺服器軟體的設計流程
6.2.1 IJNIX/Linux環境下單執行緒並發TCP伺服器軟體設計流程
6.2.2 Windows環境下單執行緒並發TcP伺服器軟體設計流程
6.3 單執行緒並發TCP伺服器實現例程
6.3.1 UNIX/Linux環境下單執行緒並發TCP伺服器實現例程
6.3.2 Windows環境下單執行緒並發TCP伺服器實現例程
6.3.3 UNIX/Linux環境下單執行緒並發TCP客戶端實現例程
6.3.4 Windows環境下單執行緒並發TcP客戶端實現例稗
6.4 本章小結
本章習題
第7章 基於POOL和EPOLL的並發機制與實現方法
7.1 P00L簡介
7.1.1 POOL的定義
7.1.2 執行緒池的基本工作原理
7.1.3 執行緒池的套用範圍
7.1.4 使用執行緒池的風險
7.2 UNIX/Linux環境下執行緒池的C語言實現例程
7.2.1 執行緒池的主要組成部分
7.2.2 執行緒池的C語言實現例程剖析
7.2.3 基於執行緒池的並發TCP伺服器例程
7.4 EPOLL簡介
7.4.1 EPOLL的定義
7.4.2 EPOLL的基本接口函式
7.4.3 EPOLL的事件模式
7.4.4 EPOLL的工作原理
7.5 基於EPOLL執行緒池的C語言例程
7.5.1 基於EPOLL執行緒池的C語言例程剖析
7.5.2 基於EPOLL的並發TCP伺服器例程
7.6 本章小結
本章習題
第8章 客戶/伺服器系統中的死鎖問題
8.1 死鎖的定義
8.2 產生死鎖的原因
8.2.1 競爭資源引起進程死鎖
8.2.2 進程推進順序不當引起死鎖
8.3 產生死鎖的必要條件
8.4 處理死鎖的基本方法
8.5 存在死鎖問題的多執行緒例程
8.6 本章小結
本章習題
附錄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函式調用方法》課程實驗
B.3 《電子郵件收發系統的設計與實現》課程實驗
B.4 《文本聊天系統的設計與實現》課程實驗
B.5 《多媒體網路聊天系統的設計與實現》課程實驗
參考文獻

相關詞條

熱門詞條

聯絡我們