注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計C++新經(jīng)典:Linux C++通信架構(gòu)實(shí)戰(zhàn)

C++新經(jīng)典:Linux C++通信架構(gòu)實(shí)戰(zhàn)

C++新經(jīng)典:Linux C++通信架構(gòu)實(shí)戰(zhàn)

定 價:¥99.00

作 者: 王健偉 著
出版社: 清華大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787302555292 出版時間: 2020-11-01 包裝: 平裝
開本: 16 頁數(shù): 408 字?jǐn)?shù):  

內(nèi)容簡介

  本書是一部介紹在Linux下使用C++開發(fā)網(wǎng)絡(luò)通信服務(wù)器程序的書。本書共8章36節(jié),介紹了一個完整的項目,其中包括通信框架和業(yè)務(wù)邏輯框架,有以下幾個特點(diǎn): ①項目本身是一個完整的多線程高并發(fā)的服務(wù)器程序; ②支持TCP長連接,按照“包頭+包體格式”正確接收客戶端發(fā)送過來的數(shù)據(jù)包,完美解決收包時的數(shù)據(jù)粘包問題; ③可根據(jù)收到的不同數(shù)據(jù)包選擇不同的業(yè)務(wù)處理邏輯; ④可將業(yè)務(wù)處理產(chǎn)生的結(jié)果數(shù)據(jù)包正確返回給客戶端。 項目中用到的主要開發(fā)技術(shù)和特色包括: ①epoll高并發(fā)通信技術(shù),用到的觸發(fā)模式是epoll中的水平觸發(fā)模式(LT); ②通過線程池技術(shù)處理業(yè)務(wù)邏輯; ③線程之間的同步技術(shù)包括互斥量和信號量; ④連接池中連接的延遲回收技術(shù),可極大程度地消除諸多導(dǎo)致服務(wù)器程序工作不穩(wěn)定的因素; ⑤專門處理數(shù)據(jù)發(fā)送的一整套數(shù)據(jù)發(fā)送邏輯以及對應(yīng)的發(fā)送線程; ⑥信號處理、配置文件讀取、日志的打印輸出、調(diào)用fork創(chuàng)建子進(jìn)程、創(chuàng)建守護(hù)進(jìn)程等技術(shù)。 本書適合作為已經(jīng)掌握C/C++語言,希望進(jìn)一步深入學(xué)習(xí)的開發(fā)人員的自學(xué)參考用書。

作者簡介

  王健偉,1995年畢業(yè)于哈爾濱工程大學(xué)計算機(jī)及應(yīng)用專業(yè),20多年軟件開發(fā)經(jīng)驗(yàn),經(jīng)歷過數(shù)十個軟件項目開發(fā)包括網(wǎng)絡(luò)通信、網(wǎng)絡(luò)安全、網(wǎng)絡(luò)游戲等領(lǐng)域,多年的摸爬滾打使自身具備了極其深厚的開發(fā)實(shí)力和實(shí)戰(zhàn)經(jīng)驗(yàn)。中國首套網(wǎng)絡(luò)安全在線掃描評估系統(tǒng)項目負(fù)責(zé)人,電子工業(yè)出版社2003年《Crystal Reports水晶報表設(shè)計與開發(fā)實(shí)務(wù)》書籍作者,全球同服獨(dú)立游戲《冒險之路》制作人。

圖書目錄

第1章課程介紹
1.1本書內(nèi)容詳細(xì)介紹
1.1.1內(nèi)容總述
1.1.2為什么選擇Linux操作系統(tǒng)平臺
1.1.3講解規(guī)劃和學(xué)習(xí)建議
1.1.4書籍推薦和讀書須知
1.2環(huán)境搭建詳細(xì)介紹
1.2.1Windows下的Visual Studio 2019安裝
1.2.2準(zhǔn)備一個Word文檔
1.2.3Windows下的虛擬機(jī)安裝
1.2.4在虛擬機(jī)中安裝Linux操作系統(tǒng)
1.2.5配置固定IP地址
1.2.6配置遠(yuǎn)程連接
1.2.7安裝編譯工具gcc、g++等
1.2.8共享一個操作目錄
第2章進(jìn)入Nginx之門
2.1Nginx簡介、選擇理由、安裝和使用
2.1.1Nginx簡介
2.1.2為什么選擇Nginx
2.1.3安裝Nginx,搭建Web服務(wù)器
2.1.4Nginx的啟動和簡單使用
2.2Nginx整體結(jié)構(gòu)、進(jìn)程模型
2.2.1Nginx的整體結(jié)構(gòu)
2.2.2Nginx進(jìn)程模型細(xì)說
第3章Nginx開發(fā)初步
3.1學(xué)習(xí)Nginx源碼前的準(zhǔn)備工作
3.1.1Nginx源碼總述
3.1.2Nginx源碼查看工具
3.1.3Nginx源碼入口函數(shù)定位
3.1.4創(chuàng)建一個自己的Linux下的C語言程序
3.2Nginx源碼學(xué)法,終端和進(jìn)程的關(guān)系
3.2.1Nginx源碼學(xué)習(xí)方法
3.2.2終端和進(jìn)程的關(guān)系
3.3信號的概念、認(rèn)識、處理動作
3.3.1信號的基本概念
3.3.2通過kill命令認(rèn)識一些信號
3.3.3進(jìn)程的狀態(tài)
3.3.4常用信號列舉
3.3.5信號處理的相關(guān)動作
3.4UNIX/Linux體系結(jié)構(gòu)、信號編程初步
3.4.1UNIX/Linux操作系統(tǒng)體系結(jié)構(gòu)
3.4.2signal函數(shù)范例
3.5信號編程進(jìn)階、sigprocmask范例
3.5.1信號集(信號屏蔽字)
3.5.2信號相關(guān)函數(shù)
3.5.3sigprocmask等信號函數(shù)范例演示
3.6fork函數(shù)詳解、范例演示
3.6.1簡單認(rèn)識fork函數(shù)
3.6.2進(jìn)一步認(rèn)識fork函數(shù)
3.6.3完善fork代碼
3.6.4一個和fork執(zhí)行有關(guān)的邏輯判斷
3.6.5fork失敗的可能原因
3.7守護(hù)進(jìn)程詳解、范例演示
3.7.1普通進(jìn)程運(yùn)行觀察
3.7.2守護(hù)進(jìn)程基本概念
3.7.3守護(hù)進(jìn)程編寫規(guī)則
3.7.4守護(hù)進(jìn)程不會收到的信號
3.7.5守護(hù)進(jìn)程和后臺進(jìn)程的區(qū)別
第4章服務(wù)器程序框架初步
4.1服務(wù)器程序目錄規(guī)劃、makefile編寫
4.1.1信號高級認(rèn)識范例
4.1.2服務(wù)器架構(gòu)初步
4.2讀配置文件、查泄漏、設(shè)置標(biāo)題實(shí)戰(zhàn)
4.2.1基礎(chǔ)設(shè)施之配置文件讀取
4.2.2內(nèi)存泄漏的檢查工具
4.2.3設(shè)置進(jìn)程名稱(標(biāo)題)
4.3日志打印實(shí)戰(zhàn),優(yōu)化main函數(shù)調(diào)用順序
4.3.1基礎(chǔ)設(shè)施之日志打印實(shí)戰(zhàn)代碼一
4.3.2設(shè)置時區(qū)
4.3.3基礎(chǔ)設(shè)施之日志打印實(shí)戰(zhàn)代碼二
4.3.4理順main函數(shù)中代碼執(zhí)行順序
4.4信號、子進(jìn)程實(shí)戰(zhàn),文件I/O詳談
4.4.1信號功能實(shí)戰(zhàn)
4.4.2Nginx中創(chuàng)建worker子進(jìn)程
4.4.3日志輸出重要信息講解
4.4.4write函數(shù)思考
4.4.5掉電導(dǎo)致write寫入的數(shù)據(jù)丟失破解法
4.4.6標(biāo)準(zhǔn)I/O庫
4.5守護(hù)進(jìn)程及信號處理實(shí)戰(zhàn)
4.5.1守護(hù)進(jìn)程功能的實(shí)現(xiàn)
4.5.2信號處理函數(shù)的進(jìn)一步完善(避免僵尸子進(jìn)程)
第5章網(wǎng)絡(luò)通信實(shí)戰(zhàn)
5.1C/S、TCP/IP妙趣橫生、惟妙惟肖談
5.1.1客戶端與服務(wù)器端
5.1.2網(wǎng)絡(luò)模型
5.1.3最簡單的客戶端和服務(wù)器程序?qū)崿F(xiàn)代碼
5.1.4TCP和UDP的區(qū)別
5.2TCP三次握手詳析,telnet、Wireshark示范
5.2.1TCP連接的三次握手
5.2.2telnet工具使用介紹
5.2.3Wireshark監(jiān)視數(shù)據(jù)包
5.2.4TCP斷開的四次揮手
5.3TCP狀態(tài)轉(zhuǎn)換,TIME_WAIT詳解,SO_REUSEADDR
5.3.1TCP狀態(tài)轉(zhuǎn)換
5.3.2TIME_WAIT狀態(tài)
5.3.3SO_REUSEADDR選項
5.4listen隊列剖析、阻塞與非阻塞、同步與異步
5.4.1listen隊列剖析
5.4.2阻塞與非阻塞I/O
5.4.3異步與同步I/O
5.5監(jiān)聽端口實(shí)戰(zhàn)、epoll介紹及原理詳析
5.5.1監(jiān)聽端口
5.5.2epoll技術(shù)簡介
5.5.3epoll原理與函數(shù)介紹
5.6通信代碼精粹之epoll函數(shù)實(shí)戰(zhàn)1
5.6.1提醒注意
5.6.2配置文件的修改
5.6.3epoll函數(shù)實(shí)戰(zhàn)
5.7通信代碼精粹之epoll函數(shù)實(shí)戰(zhàn)2
5.7.1ngx_epoll_process_events函數(shù)調(diào)用位置
5.7.2ngx_epoll_process_events函數(shù)內(nèi)容
5.7.3ngx_event_accept函數(shù)內(nèi)容
5.7.4總結(jié)和測試
5.7.5事件驅(qū)動總結(jié)
5.7.6一道騰訊后臺開發(fā)的面試題
5.8ET、LT深釋,服務(wù)器設(shè)計、粘包解決
5.8.1ET、LT模式深入分析及測試
5.8.2本項目的服務(wù)器設(shè)計
5.9通信代碼精粹之收包、解包實(shí)戰(zhàn)
5.9.1收包分析及包頭結(jié)構(gòu)定義
5.9.2收包狀態(tài)宏定義
5.9.3收包實(shí)戰(zhàn)代碼
5.9.4測試服務(wù)器收包避免推諉扯皮
第6章服務(wù)器業(yè)務(wù)邏輯處理框架
6.1業(yè)務(wù)邏輯之多線程、線程池實(shí)戰(zhàn)
6.1.1學(xué)習(xí)方法
6.1.2多線程的提出
6.1.3線程池實(shí)戰(zhàn)代碼
6.1.4線程池的使用
6.2業(yè)務(wù)邏輯之打通業(yè)務(wù)處理脈搏實(shí)戰(zhàn)
6.2.1線程池代碼調(diào)整及補(bǔ)充說明
6.2.2線程池實(shí)現(xiàn)具體業(yè)務(wù)之準(zhǔn)備代碼
6.2.3threadRecvProcFunc成員函數(shù)講解
6.2.4整體測試工作的開展
6.3預(yù)發(fā)包,多線程資源回收深度思考
6.3.1業(yè)務(wù)邏輯細(xì)節(jié)寫法說明
6.3.2連接池中連接回收的深度思考
6.3.3程序(進(jìn)程)退出時線程的安全終止
6.3.4epoll事件處理的改造
6.3.5連接延遲回收的具體應(yīng)用
6.4LT發(fā)數(shù)據(jù)機(jī)制深釋、gdb調(diào)試淺談
6.4.1水平觸發(fā)模式(LT)下發(fā)送數(shù)據(jù)深度解釋
6.4.2gdb調(diào)試淺談
6.5發(fā)數(shù)據(jù)、信號量、并發(fā)、多線程綜合實(shí)戰(zhàn)
6.5.1發(fā)送數(shù)據(jù)指導(dǎo)思想
6.5.2發(fā)送數(shù)據(jù)代碼實(shí)戰(zhàn)
6.5.3發(fā)送數(shù)據(jù)后續(xù)處理代碼
第7章畫龍點(diǎn)睛之服務(wù)器安全與完善
7.1過往總結(jié)、心跳包代碼實(shí)戰(zhàn)
7.1.1前面學(xué)習(xí)的總結(jié)
7.1.2心跳包概念
7.1.3心跳包代碼實(shí)戰(zhàn)
7.2控制連入數(shù),黑客攻擊防范及畸形包應(yīng)對
7.2.1控制并發(fā)連入數(shù)量
7.2.2黑客攻擊的防范
7.2.3超時直接踢出服務(wù)器的需求
7.3超負(fù)荷安全處理、綜合壓力測試
7.3.1輸出一些觀察信息
7.3.2遺漏的安全問題思考
7.3.3壓力測試前的準(zhǔn)備工作
7.3.4壓力測試
7.4驚群、性能優(yōu)化大局觀
7.4.1CPU占比與驚群
7.4.2性能優(yōu)化大局觀
7.4.3性能優(yōu)化的實(shí)施
7.4.4配置最大允許打開的文件句柄數(shù)
7.4.5內(nèi)存池補(bǔ)充說明
第8章總結(jié)與展望
8.1遺留問題探討增補(bǔ)之消息跳躍發(fā)送
8.1.1調(diào)整ngx_write_request_handler函數(shù)的代碼順序
8.1.2消息的跳躍發(fā)送
8.2結(jié)束語、課程總結(jié)
8.2.1本書概要總結(jié)
8.2.2技術(shù)總結(jié)
8.2.3項目的用途總結(jié)
8.2.4學(xué)習(xí)方法總結(jié)
8.2.5架構(gòu)師之路
8.2.6代碼統(tǒng)計與再見

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號