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