注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)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)

定 價(jià):¥99.00

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

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

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

第1章課程介紹
1.1本書內(nèi)容詳細(xì)介紹
1.1.1內(nèi)容總述
1.1.2為什么選擇Linux操作系統(tǒng)平臺(tái)
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)備一個(gè)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共享一個(gè)操作目錄
第2章進(jìn)入Nginx之門
2.1Nginx簡(jiǎn)介、選擇理由、安裝和使用
2.1.1Nginx簡(jiǎn)介
2.1.2為什么選擇Nginx
2.1.3安裝Nginx,搭建Web服務(wù)器
2.1.4Nginx的啟動(dòng)和簡(jiǎn)單使用
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)建一個(gè)自己的Linux下的C語言程序
3.2Nginx源碼學(xué)法,終端和進(jìn)程的關(guān)系
3.2.1Nginx源碼學(xué)習(xí)方法
3.2.2終端和進(jìn)程的關(guān)系
3.3信號(hào)的概念、認(rèn)識(shí)、處理動(dòng)作
3.3.1信號(hào)的基本概念
3.3.2通過kill命令認(rèn)識(shí)一些信號(hào)
3.3.3進(jìn)程的狀態(tài)
3.3.4常用信號(hào)列舉
3.3.5信號(hào)處理的相關(guān)動(dòng)作
3.4UNIX/Linux體系結(jié)構(gòu)、信號(hào)編程初步
3.4.1UNIX/Linux操作系統(tǒng)體系結(jié)構(gòu)
3.4.2signal函數(shù)范例
3.5信號(hào)編程進(jìn)階、sigprocmask范例
3.5.1信號(hào)集(信號(hào)屏蔽字)
3.5.2信號(hào)相關(guān)函數(shù)
3.5.3sigprocmask等信號(hào)函數(shù)范例演示
3.6fork函數(shù)詳解、范例演示
3.6.1簡(jiǎn)單認(rèn)識(shí)fork函數(shù)
3.6.2進(jìn)一步認(rèn)識(shí)fork函數(shù)
3.6.3完善fork代碼
3.6.4一個(gè)和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)程不會(huì)收到的信號(hào)
3.7.5守護(hù)進(jìn)程和后臺(tái)進(jìn)程的區(qū)別
第4章服務(wù)器程序框架初步
4.1服務(wù)器程序目錄規(guī)劃、makefile編寫
4.1.1信號(hào)高級(jí)認(rèn)識(shí)范例
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è)置時(shí)區(qū)
4.3.3基礎(chǔ)設(shè)施之日志打印實(shí)戰(zhàn)代碼二
4.3.4理順main函數(shù)中代碼執(zhí)行順序
4.4信號(hào)、子進(jìn)程實(shí)戰(zhàn),文件I/O詳談
4.4.1信號(hào)功能實(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)程及信號(hào)處理實(shí)戰(zhàn)
4.5.1守護(hù)進(jìn)程功能的實(shí)現(xiàn)
4.5.2信號(hào)處理函數(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最簡(jiǎn)單的客戶端和服務(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選項(xiàng)
5.4listen隊(duì)列剖析、阻塞與非阻塞、同步與異步
5.4.1listen隊(duì)列剖析
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ù)簡(jiǎn)介
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é)和測(cè)試
5.7.5事件驅(qū)動(dòng)總結(jié)
5.7.6一道騰訊后臺(tái)開發(fā)的面試題
5.8ET、LT深釋,服務(wù)器設(shè)計(jì)、粘包解決
5.8.1ET、LT模式深入分析及測(cè)試
5.8.2本項(xiàng)目的服務(wù)器設(shè)計(jì)
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測(cè)試服務(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整體測(cè)試工作的開展
6.3預(yù)發(fā)包,多線程資源回收深度思考
6.3.1業(yè)務(wù)邏輯細(xì)節(jié)寫法說明
6.3.2連接池中連接回收的深度思考
6.3.3程序(進(jìn)程)退出時(shí)線程的安全終止
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ù)、信號(hào)量、并發(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)對(duì)
7.2.1控制并發(fā)連入數(shù)量
7.2.2黑客攻擊的防范
7.2.3超時(shí)直接踢出服務(wù)器的需求
7.3超負(fù)荷安全處理、綜合壓力測(cè)試
7.3.1輸出一些觀察信息
7.3.2遺漏的安全問題思考
7.3.3壓力測(cè)試前的準(zhǔn)備工作
7.3.4壓力測(cè)試
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項(xiàng)目的用途總結(jié)
8.2.4學(xué)習(xí)方法總結(jié)
8.2.5架構(gòu)師之路
8.2.6代碼統(tǒng)計(jì)與再見

本目錄推薦

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