本書全面深入地介紹基于套接字和軟件定義網(wǎng)絡(luò)的編程技術(shù)。全書共10章,主要內(nèi)容包括套接字網(wǎng)絡(luò)編程基礎(chǔ)、WinSock編程、WinSock的I/O模型、CAsyncSocket類編程、CSocket類編程、WinInet編程、HTTP及高級編程、電子郵件協(xié)議與編程、SDN網(wǎng)絡(luò)編程。各章都配有習(xí)題,讓讀者能夠理解并掌握所學(xué)內(nèi)容,從而提升網(wǎng)絡(luò)編程能力。 本書結(jié)構(gòu)清晰、講解細致、通俗易懂,可以作為高等院校網(wǎng)絡(luò)通信編程及相關(guān)專業(yè)的教材,也可以作為相關(guān)培訓(xùn)機構(gòu)的教材,還可以作為網(wǎng)絡(luò)研究和開發(fā)人員的參考書。
1.本書是中國通信學(xué)會推薦用書。
2.本書作者具有豐富的程序一線教學(xué)經(jīng)驗,深知讀者需求和認知規(guī)律。
3.本書采用大量的示例,內(nèi)容基本覆蓋網(wǎng)絡(luò)編程核心技術(shù)的知識點,內(nèi)容直觀,實戰(zhàn)性高,可讀性較強。
4.本書的示例在新的Visual Studio Code中調(diào)試運行。
劉金江,主要研究方向為計算機網(wǎng)絡(luò)、數(shù)據(jù)分析與處理。參與國家自然科學(xué)基金項目2項,主持完成省部級項目3項,在Mathematical Problems in Engineering等國內(nèi)外雜志發(fā)表學(xué)術(shù)論文20余篇,出版學(xué)術(shù)著作教材5部,授權(quán)發(fā)明專利2件。河南省數(shù)字圖像大數(shù)據(jù)智能處理工程研究中心主任,計算機應(yīng)用技術(shù)河南省重點學(xué)科帶頭人,碩士研究生導(dǎo)師,擔任學(xué)術(shù)任職有中國計算機學(xué)會會員、河南省計算機教育研究會理事等。
第 1章 概述
1.1 網(wǎng)絡(luò)編程相關(guān)的基本概念
1.1.1 網(wǎng)絡(luò)編程與進程通信
1.1.2 互聯(lián)網(wǎng)中網(wǎng)間進程的標識
1.1.3 網(wǎng)絡(luò)協(xié)議的特征
1.2 客戶機/服務(wù)器交互模式
1.2.1 網(wǎng)絡(luò)應(yīng)用的工作模式
1.2.2 客戶機/服務(wù)器模式
1.2.3 容易混淆的術(shù)語
1.2.4 網(wǎng)絡(luò)協(xié)議與C/S模式的關(guān)系
1.2.5 C/S交互的多樣化
1.2.6 服務(wù)器的并發(fā)性
1.2.7 網(wǎng)絡(luò)服務(wù)的標識方式
1.3 P2P模式
1.3.1 P2P技術(shù)的興起
1.3.2 P2P的定義和特征
1.3.3 P2P的發(fā)展
1.3.4 P2P的關(guān)鍵技術(shù)
1.3.5 P2P系統(tǒng)的應(yīng)用與前景
1.4 網(wǎng)絡(luò)編程
1.4.1 基于c/s模式的網(wǎng)絡(luò)編程
1.4.2 基于b/s模式的網(wǎng)絡(luò)編程
1.4.3 基于p2p模式的網(wǎng)絡(luò)編程
1.4.4 SDN中的網(wǎng)絡(luò)編程
習(xí)題
第 2章 套接字網(wǎng)絡(luò)編程基礎(chǔ)
2.1 套接字網(wǎng)絡(luò)編程接口的產(chǎn)生與發(fā)展
2.1.1 問題的提出
2.1.2 套接字編程接口的起源
2.1.3 套接字編程接口的繼承和發(fā)展
2.1.4 套接字編程接口的兩種實現(xiàn)方式
2.1.5 套接字通信與UNIX操作系統(tǒng)的輸入/輸出的關(guān)系
2.2 套接字編程的基本概念
2.2.1 什么是套接字
2.2.2 套接字的特點
2.2.3 套接字的應(yīng)用場合
2.2.4 套接字使用的數(shù)據(jù)類型和相關(guān)函數(shù)
2.3 Windows平臺下Linux開發(fā)環(huán)境搭建
2.4 Linux環(huán)境下面向連接的套接字編程
2.4.1 可靠的傳輸控制協(xié)議
2.4.2 套接字的工作過程
2.4.3 面向連接的套接字編程實例
2.4.4 進程的阻塞問題和對策
2.5 Linux環(huán)境下無連接的套接字編程
2.5.1 高效的用戶數(shù)據(jù)包協(xié)議
2.5.2 無連接的套接字編程的兩種模式
2.5.3 數(shù)據(jù)包套接字的對等模式編程實例
2.6 Linux環(huán)境下原始套接字
2.6.1 原始套接字的創(chuàng)建
2.6.2 原始套接字的使用
2.6.3 原始套接字應(yīng)用實例
習(xí)題
第3章 WinSock編程
3.1 WinSock概述
3.2 WinSock庫函數(shù)
3.2.1 WinSock的注冊與注銷
3.2.2 WinSock的錯誤處理函數(shù)
3.2.3 主要的WinSock函數(shù)
3.2.4 WinSock的輔助函數(shù)
3.2.5 WinSock的信息查詢函數(shù)
3.2.6 WSAAsyncGetXByY類型的擴展函數(shù)
3.3 WinSock的多線程編程
3.3.1 WinSock的兩種I/O模式
3.4.2 多線程編程的應(yīng)用場景
3.4 網(wǎng)絡(luò)應(yīng)用程序的運行環(huán)境
習(xí)題
第4章 WinSock的I/O模型
4.1 select模型
4.1.1 select模型主要函數(shù)
4.1.2 select模型編程實例
4.2 WSAAsyncSelect異步I/O模型
4.2.1 異步I/O模型主要函數(shù)
4.2.2 異步I/O模型編程實例
4.3 WSAEventSelect事件選擇模型
4.3.1 事件選擇模型主要函數(shù)
4.3.1 事件選擇模型編程實例
4.4 重疊I/O模型
4.4.1 重疊I/O模型的優(yōu)點
4.4.2 重疊I/O模型的基本原理
4.4.3 重疊I/O模型的關(guān)鍵函數(shù)和數(shù)據(jù)結(jié)構(gòu)
4.4.4 使用事件通知實現(xiàn)重疊模型的步驟
4.4.5 使用完成例程實現(xiàn)重疊模型的步驟
4.4.6 重疊I/O模型編程實例
4.5 完成端口模型
4.5.1 什么是完成端口模型
4.5.2 使用完成端口模型的方法
4.5.3 完成端口模型編程實例
習(xí)題
第5章 CAsyncSocket類的編程
5.1 CAsyncSocket類
5.1.1 使用CAsyncSocket類的一般步驟
5.1.2 創(chuàng)建CAsyncSocket類對象
5.1.3 關(guān)于CAsyncSocket類可以接收并處理的消息事件
5.1.4 客戶端套接字對象請求連接到服務(wù)器端套接字對象
5.1.5 服務(wù)器接收客戶機的連接請求
5.1.6 發(fā)送與接收流式數(shù)據(jù)
5.1.7 關(guān)閉套接字
5.1.8 錯誤處理
5.1.9 其他成員函數(shù)
5.2 用CAsyncSocket類實現(xiàn)聊天室程序
5.2.1 實現(xiàn)目標
5.2.2 創(chuàng)建客戶端應(yīng)用程序
5.2.3 客戶端程序的類與消息驅(qū)動
5.2.4 客戶端程序主要功能的代碼和分析
5.2.5 創(chuàng)建服務(wù)器端程序
5.2.6 服務(wù)器端程序的流程和消息驅(qū)動
5.2.7 點對點交談的服務(wù)器端程序主要功能的代碼和分析
第6章 CSocket類的編程
6.1 CSocket類
6.1 .1 創(chuàng)建CSocket對象
6.1 .2 建立連接
6.1 .3 發(fā)送和接收數(shù)據(jù)
6.1 .4 CSocket類、CArchive類和CSocketFile類
6.1 .5 關(guān)閉套接字和清除相關(guān)的對象
6.2 CSocket類的編程模型
6.3 用CSocket類實現(xiàn)聊天室程序
6.3 .1 聊天室程序的功能
6.3 .2 創(chuàng)建聊天室的服務(wù)器端程序
6.3 .3 聊天室服務(wù)器端程序的主要實現(xiàn)代碼和分析
6.3 .4 創(chuàng)建聊天室的客戶端程序
6.3 .5 聊天室客戶端程序的主要實現(xiàn)代碼和分析
習(xí)題
實驗
第7章 WinInet編程
7.1 MFC WinInet類
7.1.1 概述
7.1.2 MFC WinInet所包含的類
7.1.3 使用WinInet類編程的一般步驟
7.1.4 創(chuàng)建CInternetSession類對象
7.1.5 查詢或設(shè)置互聯(lián)網(wǎng)請求選項
7.1.6 創(chuàng)建連接類對象
7.1.7 使用文件檢索類
7.1.8 重載OnStatusCallback函數(shù)
7.1.9 創(chuàng)建并使用網(wǎng)絡(luò)文件類對象
7.1.10 CInternetException類
7.2 用MFC WinInet類實現(xiàn)FTP客戶端
7.2.1 程序要實現(xiàn)的功能
7.2.2 創(chuàng)建應(yīng)用程序的過程
7.3 VC 對多線程網(wǎng)絡(luò)編程的支持
7.3.1 MFC支持的兩種線程
7.3.2 創(chuàng)建MFC的工作線程
7.3.3 創(chuàng)建并啟動用戶界面線程
7.3.4 終止線程
7.4 多線程FTP客戶端實例
7.4.1 編寫線程函數(shù)
7.4.2 添加事件處理函數(shù)
習(xí)題
實驗
第8章 HTTP及高級編程
8.1 HTTP
8.1.1 HTTP的背景
8.1.2 HTTP的內(nèi)容
8.1.3 HTTP消息的一般格式
8.1.4 HTTP請求的格式
8.1.5 HTTP響應(yīng)的格式
8.1.6 訪問認證
8.1.7 URL編碼
8.1.8 HTTP的應(yīng)用
8.2 利用CHtmlView類創(chuàng)建Web瀏覽器型的應(yīng)用程序
8.2.1 CHtmlView類與WebBrowser控件
8.2.2 CHtmlView類的成員函數(shù)
8.2.3 創(chuàng)建一個Web瀏覽器型的應(yīng)用程序的一般步驟
8.3 Web瀏覽器應(yīng)用程序?qū)嵗?br />
8.3.1 程序?qū)崿F(xiàn)的目標
8.3.2 創(chuàng)建實例程序
習(xí)題
實驗
第9章 電子郵件協(xié)議與編程
9.1 電子郵件系統(tǒng)的工作原理
9.1.1 電子郵件的特點
9.1.2 電子郵件系統(tǒng)的構(gòu)成
9.1.3 電子郵件系統(tǒng)的實現(xiàn)
9.2 簡單郵件傳送協(xié)議
9.2.1 概述
9.2.2 SMTP客戶機與SMTP服務(wù)器之間的會話
9.2.3 常用的SMTP命令
9.2.4 常用的SMTP響應(yīng)碼
9.2.5 SMTP的會話過程
9.2.6 使用WinSock來實現(xiàn)電子郵件客戶機與服務(wù)器的會話
9.3 電子郵件信件結(jié)構(gòu)詳述
9.3.1 互聯(lián)網(wǎng)文本信件的格式標準RFC 822
9.3.2 信件的頭部
9.3.3 構(gòu)造和分析符合RFC 822標準的電子信件
9.4 MIME編碼解碼與發(fā)送附件
9.4.1 MIME概述
9.4.2 MIME定義的新的信頭字段
9.4.3 MIME郵件的內(nèi)容類型
9.4.4 MIME郵件的編碼方式
9.5 POP3與接收電子郵件
9.5.1 POP3
9.5.2 POP3的會話過程
9.5.3 POP3會話的3個狀態(tài)
9.5.4 POP3標準命令
9.5.5 接收電子郵件的一般步驟
9.6 接收電子郵件的程序?qū)嵗?br />
9.6.1 實例程序的目的和實現(xiàn)的技術(shù)要點
9.6.2 創(chuàng)建應(yīng)用程序的過程
9.7 發(fā)送電子郵件的程序?qū)嵗?br />
9.7.1 實例程序的目的和實現(xiàn)的技術(shù)要點
9.7.2 創(chuàng)建應(yīng)用程序的過程
習(xí)題
第 10章 SDN網(wǎng)絡(luò)編程
10.1 OpenFlow
10.1.1 OpenFlow概述
10.1.2 流表
10.1.2 OpenFlow 通道
10.2 SDN仿真環(huán)境
10.2.1 Mininet的安裝和配置
10.1.1 mininet的安裝和配置
10.1.2 RYU的安裝和配置
10.3 編程實驗
10.3.1 基于miniedit的可視化操作
10.3.2 自學(xué)習(xí)交換機
10.3.3 SDN流量監(jiān)測
習(xí) 題
參考文獻