[ 收藏 ] [ 繁体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

  •  文化

  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

     保健/养生
     体育/运动
     手工/DIY
     休闲/爱好
     英文原版书
     港台图书
     研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学
  • C++新經典:Linux C++通信架構實戰
    該商品所屬分類:計算機/網絡 -> 程序設計
    【市場價】
    1092-1584
    【優惠價】
    683-990
    【作者】 王健偉 
    【所屬類別】 圖書  計算機/網絡  程序設計  CC++C#VCVC++ 
    【出版社】清華大學出版社 
    【ISBN】9787302555292
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302555292
    作者:王健偉

    出版社:清華大學出版社
    出版時間:2020年11月 

        
        
    "

    產品特色

    編輯推薦

    書中主題


    商業項目的完整源碼  從無到有,實現一個商業質量的多線程高並發服務器程序項目框架,隻需要增加業務邏輯代碼就可以利用本項目完成實際工作中諸多服務器項目的開發,如網絡遊戲服務器、交易服務器、通信服務器等。


    商業項目的實現功能  ①按照包頭 包體格式正確接收客戶端發送的數據包, 完美解決數據粘包問題;②根據接收的數據包的不同來執行不同的業務處理邏輯;③把業務處理產生的結果數據包正確返回給客戶端。


    商業項目的開發技術  ①epoll高並發通信技術(水平觸發模式LT);②通過線程池技術處理業務邏輯;③線程之間的同步技術包括互斥量與信號量;④連接池中連接的延遲回收技術,極大程度上消除諸多導致服務器程序工作不穩定的因素;⑤其他次要技術,包括信號的處理、配置文件的讀取、日志的打印輸出、調用fork創建子進程、創建守護進程等。


    環境標準


    VMware Workstation Pro:Ubuntu Linux、g 、Windows:Visual Studio 2019、Visual Studio Code


    VMware Workstation Pro:Ubuntu Linux、g


    Windows:Visual Studio 2019、Visual Studio Code


    程序代碼


    全部實例源代碼可以掃描右方二維碼獲取,配套開發工具及更多學習資源可以關注作者公眾號“程序員速成”獲取。

     
    內容簡介

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

    作者簡介

    王健偉,1995年畢業於哈爾濱工程大學計算機及應用專業,20多年軟件開發經驗,經歷過數十個軟件項目開發包括網絡通信、網絡安全、網絡遊戲等領域,多年的摸爬滾打使自身具備了極其深厚的開發實力和實戰經驗。中國首套網絡安全在線掃描評估繫統項目負責人,電子工業出版社2003年《Crystal Reports水晶報表設計與開發實務》書籍作者,全球同服獨立遊戲《冒險之路》制作人。

    目錄
    第1章課程介紹
    1.1本書內容詳細介紹
    1.1.1內容總述
    1.1.2為什麼選擇Linux操作繫統平臺
    1.1.3講解規劃和學習建議
    1.1.4書籍推薦和讀書須知
    1.2環境搭建詳細介紹
    1.2.1Windows下的Visual Studio 2019安裝
    1.2.2準備一個Word文檔
    1.2.3Windows下的虛擬機安裝
    1.2.4在虛擬機中安裝Linux操作繫統
    1.2.5配置固定IP地址
    1.2.6配置遠程連接
    1.2.7安裝編譯工具gcc、g 等

    第1章課程介紹


    1.1本書內容詳細介紹


    1.1.1內容總述


    1.1.2為什麼選擇Linux操作繫統平臺


    1.1.3講解規劃和學習建議


    1.1.4書籍推薦和讀書須知


    1.2環境搭建詳細介紹


    1.2.1Windows下的Visual Studio 2019安裝


    1.2.2準備一個Word文檔


    1.2.3Windows下的虛擬機安裝


    1.2.4在虛擬機中安裝Linux操作繫統


    1.2.5配置固定IP地址


    1.2.6配置遠程連接


    1.2.7安裝編譯工具gcc、g 等


    1.2.8共享一個操作目錄


    第2章進入Nginx之門


    2.1Nginx簡介、選擇理由、安裝和使用


    2.1.1Nginx簡介


    2.1.2為什麼選擇Nginx


    2.1.3安裝Nginx,搭建Web服務器


    2.1.4Nginx的啟動和簡單使用


    2.2Nginx整體結構、進程模型


    2.2.1Nginx的整體結構


    2.2.2Nginx進程模型細說


    第3章Nginx開發初步


    3.1學習Nginx源碼前的準備工作


    3.1.1Nginx源碼總述


    3.1.2Nginx源碼查看工具


    3.1.3Nginx源碼入口函數定位


    3.1.4創建一個自己的Linux下的C語言程序


    3.2Nginx源碼學法,終端和進程的關繫


    3.2.1Nginx源碼學習方法


    3.2.2終端和進程的關繫


    3.3信號的概念、認識、處理動作


    3.3.1信號的基本概念


    3.3.2通過kill命令認識一些信號


    3.3.3進程的狀態


    3.3.4常用信號列舉


    3.3.5信號處理的相關動作


    3.4UNIX/Linux體繫結構、信號編程初步


    3.4.1UNIX/Linux操作繫統體繫結構


    3.4.2signal函數範例


    3.5信號編程進階、sigprocmask範例


    3.5.1信號集(信號屏蔽字)


    3.5.2信號相關函數


    3.5.3sigprocmask等信號函數範例演示


    3.6fork函數詳解、範例演示


    3.6.1簡單認識fork函數


    3.6.2進一步認識fork函數


    3.6.3完善fork代碼


    3.6.4一個和fork執行有關的邏輯判斷


    3.6.5fork失敗的可能原因


    3.7守護進程詳解、範例演示


    3.7.1普通進程運行觀察


    3.7.2守護進程基本概念


    3.7.3守護進程編寫規則


    3.7.4守護進程不會收到的信號


    3.7.5守護進程和後臺進程的區別


    第4章服務器程序框架初步


    4.1服務器程序目錄規劃、makefile編寫


    4.1.1信號高級認識範例


    4.1.2服務器架構初步


    4.2讀配置文件、查洩漏、設置標題實戰


    4.2.1基礎設施之配置文件讀取


    4.2.2內存洩漏的檢查工具


    4.2.3設置進程名稱(標題)


    4.3日志打印實戰,優化main函數調用順序


    4.3.1基礎設施之日志打印實戰代碼一


    4.3.2設置時區


    4.3.3基礎設施之日志打印實戰代碼二


    4.3.4理順main函數中代碼執行順序


    4.4信號、子進程實戰,文件I/O詳談


    4.4.1信號功能實戰


    4.4.2Nginx中創建worker子進程


    4.4.3日志輸出重要信息講解


    4.4.4write函數思考


    4.4.5掉電導致write寫入的數據丟失破解法


    4.4.6標準I/O庫


    4.5守護進程及信號處理實戰


    4.5.1守護進程功能的實現


    4.5.2信號處理函數的進一步完善(避免僵尸子進程)


    第5章網絡通信實戰


    5.1C/S、TCP/IP妙趣橫生、惟妙惟肖談


    5.1.1客戶端與服務器端


    5.1.2網絡模型


    5.1.3簡單的客戶端和服務器程序實現代碼


    5.1.4TCP和UDP的區別


    5.2TCP三次握手詳析,telnet、Wireshark示範


    5.2.1TCP連接的三次握手


    5.2.2telnet工具使用介紹


    5.2.3Wireshark監視數據包


    5.2.4TCP斷開的四次揮手


    5.3TCP狀態轉換,TIME_WAIT詳解,SO_REUSEADDR


    5.3.1TCP狀態轉換


    5.3.2TIME_WAIT狀態


    5.3.3SO_REUSEADDR選項


    5.4listen隊列剖析、阻塞與非阻塞、同步與異步


    5.4.1listen隊列剖析


    5.4.2阻塞與非阻塞I/O


    5.4.3異步與同步I/O


    5.5監聽端口實戰、epoll介紹及原理詳析


    5.5.1監聽端口


    5.5.2epoll技術簡介


    5.5.3epoll原理與函數介紹


    5.6通信代碼精粹之epoll函數實戰1


    5.6.1提醒注意


    5.6.2配置文件的修改


    5.6.3epoll函數實戰


    5.7通信代碼精粹之epoll函數實戰2


    5.7.1ngx_epoll_process_events函數調用位置


    5.7.2ngx_epoll_process_events函數內容


    5.7.3ngx_event_accept函數內容


    5.7.4總結和測試


    5.7.5事件驅動總結


    5.7.6一道騰訊後臺開發的面試題


    5.8ET、LT深釋,服務器設計、粘包解決


    5.8.1ET、LT模式深入分析及測試


    5.8.2本項目的服務器設計


    5.9通信代碼精粹之收包、解包實戰


    5.9.1收包分析及包頭結構定義


    5.9.2收包狀態宏定義


    5.9.3收包實戰代碼


    5.9.4測試服務器收包避免推諉扯皮


    第6章服務器業務邏輯處理框架


    6.1業務邏輯之多線程、線程池實戰


    6.1.1學習方法


    6.1.2多線程的提出


    6.1.3線程池實戰代碼


    6.1.4線程池的使用


    6.2業務邏輯之打通業務處理脈搏實戰


    6.2.1線程池代碼調整及補充說明


    6.2.2線程池實現具體業務之準備代碼


    6.2.3threadRecvProcFunc成員函數講解


    6.2.4整體測試工作的開展


    6.3預發包,多線程資源回收深度思考


    6.3.1業務邏輯細節寫法說明


    6.3.2連接池中連接回收的深度思考


    6.3.3程序(進程)退出時線程的安全終止


    6.3.4epoll事件處理的改造


    6.3.5連接延遲回收的具體應用


    6.4LT發數據機制深釋、gdb調試淺談


    6.4.1水平觸發模式(LT)下發送數據深度解釋


    6.4.2gdb調試淺談


    6.5發數據、信號量、並發、多線程綜合實戰


    6.5.1發送數據指導思想


    6.5.2發送數據代碼實戰


    6.5.3發送數據後續處理代碼


    第7章畫龍點睛之服務器安全與完善


    7.1過往總結、心跳包代碼實戰


    7.1.1前面學習的總結


    7.1.2心跳包概念


    7.1.3心跳包代碼實戰


    7.2控制連入數,黑客攻擊防範及畸形包應對


    7.2.1控制並發連入數量


    7.2.2黑客攻擊的防範


    7.2.3超時直接踢出服務器的需求


    7.3超負荷安全處理、綜合壓力測試


    7.3.1輸出一些觀察信息


    7.3.2遺漏的安全問題思考


    7.3.3壓力測試前的準備工作


    7.3.4壓力測試


    7.4驚群、性能優化大局觀


    7.4.1CPU占比與驚群


    7.4.2性能優化大局觀


    7.4.3性能優化的實施


    7.4.4配置允許打開的文件句柄數


    7.4.5內存池補充說明


    第8章總結與展望


    8.1遺留問題探討增補之消息跳躍發送


    8.1.1調整ngx_write_request_handler函數的代碼順序


    8.1.2消息的跳躍發送


    8.2結束語、課程總結


    8.2.1本書概要總結


    8.2.2技術總結


    8.2.3項目的用途總結


    8.2.4學習方法總結


    8.2.5架構師之路


    8.2.6代碼統計與再見


     

    前言
    自序
    書籍介紹
    本書要求讀者
    對C語言的掌握沒有障礙;
    對C 語言中的對像、類等概念的簡單應用沒有障礙(不要求對C 掌握得非常深,筆者也將展示用不多的C 開發知識就能寫出極其強悍的商業代碼);
    不要求讀者熟悉網絡或者Linux操作繫統。
    本書展示了一個完整的項目,其中包括通信框架和業務邏輯框架。
    相信讀者一旦掌握了這個通信框架和業務邏輯框架,定會如虎添翼。采用此項目的框架作為公司的基礎框架,隻需在框架中融入業務邏輯代碼即可,這為公司的資金和時間可能是巨量的。

    自序


    親愛的讀者,如果你已經讀完了筆者的《C 新經典》《C 新經典: 對像模型》兩本介紹C 語言基礎的書籍,並決定進一步深入學習,以備將來用C 在Linux下從事網絡通信/網絡服務器開發和架構工作,那麼這本《C 新經典: Linux C 通信架構實戰》,是筆者推薦給你的第3本書,不可錯過。
    書籍介紹
    本書要求讀者
    對C語言的掌握沒有障礙; 
    對C 語言中的對像、類等概念的簡單應用沒有障礙(不要求對C 掌握得非常深,筆者也將展示用不多的C 開發知識就能寫出極其強悍的商業代碼); 
    不要求讀者熟悉網絡或者Linux操作繫統。
    本書展示了一個完整的項目,其中包括通信框架和業務邏輯框架。
    相信讀者一旦掌握了這個通信框架和業務邏輯框架,定會如虎添翼。采用此項目的框架作為公司的基礎框架,隻需在框架中融入業務邏輯代碼即可,這為公司的資金和時間可能是巨量的。
    書中的項目適用於客戶端和服務器之間保持TCP長連接,並且兩端之間不算太頻繁地進行一些數據收發的場景,如網絡遊戲服務器等。
    書中的項目不適用於客戶端和服務器之間有大量數據需要持續收發的場景,如傳遞視頻、傳遞大文件等。但是,一旦全面掌握了本項目並對其進行有針對性的改造,也是完全能夠將其應用於其他場合的。
    很多網絡通信課程的老師或者相關書籍的作者喜歡什麼都講,不但自己疲憊不堪,也讓學習的人暈頭轉向,學了這個忘了那個,分散精力,事倍功半,這是知識傳授者的失職。在筆者看來,知識傳授者的一個職責,就是幫助讀者鋻別哪些知識是有用、需要學的,哪些知識是價值不高的、可以暫時不學的。本書將講解的重點定位在多線程高並發這個常使用的、難度的服務器通信開發領域,不多講,不少講,正好夠用。
    有些讀者一提到網絡通信架構/網絡服務器,就會想到各種現成的網絡服務器框架(庫,如ACE、Boost Asio、Libevent等),並且把大部分時間都花費在了熟悉和應用這些框架上。在筆者看來,不如用這些時間來研究一下這些網絡服務器框架的底層實現手段和所涉及的技術,知其然並知其所以然,雖然我們不見得需要自己造輪子,但如果知道輪子是怎麼造的就等於抓住了事物的本質和規律,就能夠在關鍵時刻大顯身手,並且使自己的技術素養和實力提升一大步。
    在世界範圍內,C 網絡通信編程方面的圖書並不多。究其原因,主要是編寫這類書對作者的要求非常高。一般來講,低於15年一線開發經驗的作者,寫出一本比較完善的C 網絡編程書是相當勉強的。即便是達到15年一線開發經驗,如果沒有從零開始搭建一個完整的網絡通信框架的親身經歷,去寫這樣一本實戰書也很容易出現漏洞。
    目前市面上名氣的網絡通信編程書當屬《UNIX網絡編程卷1套接字聯網API》。這是一本非常棒的書,知識覆蓋面廣,講解問題非常細致,體現了作者深厚的知識積累和廣博的認知。但這本書也有它的局限性,例如書中講解的多數都是知識點以及代碼片段,並沒有把這些代碼片段串起來轉化成一個商業項目或者商業框架,以使其能夠直接用於項目中(能夠用於項目中的代碼纔有直接的價值)。
    對於筆者而言,寫這本書的壓力巨大: 內容本身難度很高是其一; 要把這種難度的內容描述清楚讓人看得懂則也是一個巨大的挑戰(相信讀者在現實生活中遇到過不少自己明白卻把別人講糊塗的人)。這本書的編寫,充滿艱辛,從敲定內容至整理成書耗時8個月,而筆者在從事開發行業近15年後纔著手從零開始逐步搭建並完善書中的項目,又在實際的工作中不斷檢驗和完善了近10年,終纔形成讀者今天看到的這本書。可以說,這本書所講授的項目,體現著筆者20多年一線開發實戰經驗積累的開發實力。


    縱觀以往,很少有人敢於嘗試教隻掌握C和基本C 語言的開發者去學習這種難度頗高的網絡通信架構知識,但筆者願意做這個擺渡人,通過這本書,用自己多年積累的知識,為讀者鋪設一條極速的成纔之路,可以毫不誇張地說,學好這本書,讀者可以少則3~5年,多則10年的在C 網絡通信開發道路上成長和摸索的時間。
    在整本書的教授中,筆者提供了非常完善的代碼,給出翔實的代碼注釋,並始終帶領讀者認真解讀每一行代碼的含義。這些是日後真正在工作中拿過來就能用的商業品質的代碼。選擇這本書,你就等於找到了一個20多年經驗的人來幫助自己寫代碼,詳細地告訴你每行代碼的含義,這在以往是難以想像的事情。選擇這本書,你就能夠和筆者一起,編寫一套極高質量的服務器通信代碼並對其輕松駕馭,在前進的道路上,你一定會比別人快得多!
    本書共8章36節。
    第1章,課程介紹。談一談本書的內容、講解的規劃以及學習的建議。詳細闡述開發環境的搭建、必要信息的配置、必要工具的安裝等問題。
    第2章,進入Nginx之門。對Nginx進行簡介,闡述選擇Nginx作為講解起點的理由,詳細介紹Nginx的目錄組織結構,介紹如何編譯、安裝和執行Nginx,講述Nginx的進程模型以及一些值得關注和學習的Nginx特性。
    第3章,Nginx開發初步。對Nginx源碼進行全局性的介紹,教讀者創建一個自己的Linux下的C語言程序。以“終端和進程關繫詳解”作為切入點,引入bash以及終端的概念,介紹strace工具的使用,對信號、fork創建子進程、守護進程等概念都進行了非常詳細的講解,為後續的學習打下堅實的基礎。
    第4章,服務器程序框架初步。詳細闡述本書所搭建的服務器程序的各種規劃(包括目錄規劃、編譯工具的選擇)並詳解部分實戰代碼。這些實戰代碼,是作為一個服務器框架的基礎設施,包括讀配置文件、設置標題、日志的各種分級輸出。同時把信號處理、創建子進程、創建守護進程等以往講解過的知識全部融入服務器框架中來。
    第5章,網絡通信實戰。詳細闡述TCP/IP中重要的概念(包括三次握手、四次揮手、TCP狀態轉換細節、listen隊列),講解基本的客戶端/服務器通信程序的組成部分,引入網絡輔助工具telnet、Wireshark並演示它們的使用。闡述阻塞和非阻塞、同步I/O和異步I/O的概念。對epoll網絡模型的實現原理進行極其詳細的介紹並編寫相關的實戰代碼。此外,還詳細講解並解決服務器收包時的TCP粘包問題。
    第6章,服務器業務邏輯處理框架。詳細講解為處理業務邏輯所引入的線程池概念和代碼,深入探討多線程資源的回收、連接池中連接的回收、線程的安全終止等高級話題。引入筆者獨創的連接延遲回收機制確保服務器工作的穩定性,對於epoll中水平觸發模式下數據的發送進行極深入的講解和代碼實戰,同時,對如何使用gdb調試一個崩潰的程序並找到程序中的bug進行了細致的演示。
    第7章,畫龍點睛之服務器安全與完善。完整實現了心跳包代碼實戰。為了服務器的安全,在控制連入數量、防範黑客攻擊、應對畸形數據包方面,筆者都下了巨大的工夫。此外,為了確保服務器超負荷運轉時能夠及時被發現,筆者在項目中的很多關鍵位置設置了負荷檢查,在出現需要警惕的狀況時(例如收到太多數據包來不及處理、積壓太多數據包發送不出去時)可及時進行日志輸出。可以說,各種可能的安全問題都被筆者縝密地想到和解決了。此外,筆者還編寫了一個比較完整的客戶端測試程序,用於測試整個服務器框架程序。在本章的後,探討了驚群問題以及如何實現服務器程序的性能提升這個關鍵話題。
    第8章,總結與展望。依據筆者20多年的開發經驗,為讀者提供一些筆者自己的所思所想,期望對讀者有所幫助!
    本書閱讀進度
    不排除有基礎好和學習速度特別快的讀者可以很快讀完本書並掌握得很好,但通常來講,筆者建議如下的閱讀進度。
    整本書一共8章36節,筆者建議大概每周學習1節或者3周學習2節。整本書後半部分內容(第5章起)比前半部分內容學習難度更大、篇幅更大,所以,後半部分內容每節的學習花的時間可能更多,但是平均下來,筆者認為每節學習10天還是能夠做到的,這意味著整本書大概需要350天(1年)的學習時間。
    筆者必須提醒讀者,在學習本書的過程中: 本節的內容沒學明白,絕不可以往下學。網絡通信類知識,有其固有的難度,筆者有多年的經驗積累並竭盡全力去講述,但讀者千萬不可以理所當然地認為知識本身很簡單。如果有某一節沒學明白,後續學習就會越來越困難,甚至不得不放棄學習,這種情況筆者絕不希望在任何讀者身上出現。基礎差的讀者,哪怕一節課看3遍甚至10遍,哪怕學習時間再加長1倍、2倍甚至更多倍,也絕不可以在沒弄懂的情況下學習下一節!
    在閱讀過程中,讀者絕不可以隻用眼睛看或者隻用耳朵聽,一定要動起手來,對書中每個地方的內容、代碼,都要親自實踐來驗證,並且都要保證驗證成功。學習中遇到任何困難,都可以及時找作者或者其他讀者溝通。切記,動手實踐的步驟,是加深對知識理解和掌握的步驟,一旦缺少這個步驟,你的記憶就不深,掌握的知識就不牢。
    運行環境
    本書的範例全部在Linux操作繫統下用g 編譯器編譯通過並能正確運行。
    部分測試程序在Windows操作繫統下的Visual Studio 2019中創建,所以,Visual Studio 2019也是需要安裝的。
    筆者搭建的演示環境采用的是VMware Workstation虛擬機並在其中安裝烏班圖(Ubuntu)64位Linux操作繫統,連接Linux的終端用的是Xshell,代碼的編輯環境采用Visual Studio Code。
    對於上述環境不熟悉的讀者,建議筆者用什麼你們就用什麼,一絲一毫都不差,以免節外生枝,導致搭建環境若干天也搞不定,影響學習進度。在配套的學習資料中,筆者會提供相應的軟件,可能軟件版本有點老,但是絲毫不影響學習,讀者沒有必要去追求版本,除非安裝這些版本出了問題你自己能夠搞定。
    對於搭建環境熟悉的,出了問題自己能解決的讀者,是否用虛擬機、是否用烏班圖Linux、用哪個終端以及什麼編輯軟件等問題,自己怎麼習慣就怎麼來,沒有條條框框的限制。
    資料獲取
    本書有完整的配套學習資料(源碼),讀者可以免費獲取。獲取方法如下。
    (1) 請查找並關注“程序員速成”微信公眾號。


    (2) 在微信公眾號中輸入“通信架構”4個字,就可以獲取配套學習資料下載鏈接。
    讀者評論
    筆者在出版本書之前,有數月的時間,通過網絡推出本書所講述的內容,收到了大量學習者的反饋和很多極高的評價,99%的評論都是五星好評。這裡摘錄一部分評論留言: 



    • 狂想老師的課真的太精彩了,服務器端開發小白看了之後簡直打通了任督二脈!誇! 狂誇!希望大家都來買狂想老師的課!

    • 近搞個AI的特性,用上了你講的架構和epoll的接口設計,主管直接加薪5,加薪後超越的月薪了。

    • 老師講得特別棒,全是干貨。

    • 課程講得非常好,受益匪淺,謝謝老師。

    • 我把老師的C 課程和對像模型都學習完了,前面兩門課程講得不錯,思路清晰,特別是講C 11一些新知識點,不是把知識點硬塞給你,而是為了解決某些問題引入。這門課程我也是時間入手,相信老師的能力。非常好的課程!

    • 從老師的《C 從入門到精通 C 11/14/17》跟過來的,說良心話,老師講得真不錯,邏輯清晰,詳略得當。五星好評!

    • 講得很細致,一些基礎概念都有提及,照顧到我們這些新手,讓我們能學到平常難以接觸的知識,很好。

    • 我是跟著老師的對像模型過來的,不得不說,真是非常好的課程。

    • C 工作14年的老菜鳥來學藝,希望能得到質的飛躍!技術這東西不服牛人不行,有些地方自學不隻是多走彎路的事兒,是根本入不了道。

    • 這個課程真的非常棒,之前沒什麼項目經驗,所以沒信心,學完這個課之後感覺自己提升很多,學到了很多知識,自信心增加,對我找工作幫助很大,感謝老師!

    • 老師講得真心好,不知不覺幫我解決了很多工作中遇到的沒有理解透的難點,非常實用。如果不聽老師的課,這些僅靠自己真是太難了,感謝老師讓從事8年C語言工作的我重拾信心。

    • 正好新公司要我接手服務器框架。2倍速聽完了老師的課程,對我理解公司的代碼有很大的幫助。為來年月薪努力!!!
      筆者寄語
      實戰能力是長期培養起來的,沒有什麼捷徑。有效的方法就是看高手如何解決問題,看高手怎麼思考,怎麼深入問題。但平時工作中幾乎沒有高手會有時間教你這些。
      這本書之所以非常珍貴,就是因為這裡面蘊含著我對解決問題及實戰的各種思考。但我發現很多同學對這門課程的認識不足,學習力度不夠,導致學習效果不佳。
      這不是看電影,你們買張票,我在臺上演,你們在臺下看。不是這樣,是你們要到臺上來,跟我一起演,而且你們的戲份比我還要重。
      這本書可以讓絕大多數還在上學的人隻學習1~2年的時間,畢業之後就可以弔打畢業5~10年的各路開發高手,前提是,你肯下工夫學,並且還得能學通、學透。
      另外,這本書不是為了拼湊各種知識,不是為了貪大求全,什麼都講,本書會集中火力,講解一些筆者認為有用的東西,當讀者自己有了比較好的基礎後,就能夠快速地去領悟去學習新的東西了。
      致謝
      20年前,筆者寫過一本《Crystal Reports水晶報表設計與開發實務》,這本書的編寫實在是太辛苦,有3個多月,每天大概要寫到後半夜3點纔能休息。書完成之後,整個人瘦了好幾圈。
      雖然書有一定的銷量,但是跟付出比感覺不成比例。所以,從那時候開始,筆者就暗下決心,從此以後再也不寫書了。
      人算不如天算,2018年下旬,筆者通過網絡,逐步發布一些C/C 類網絡課程。意外的是,這些課程獲得了極好的口碑,隱隱有超越世面絕大多數C/C 類課程的趨勢。在這個時候,清華大學出版社電子信息教材事業部主任、首席策劃盛東亮先生找到筆者,希望筆者能夠寫一本優質的C/C 類書籍。
      因為多年前出書的辛勞產生的心理陰影,筆者當時本能地拒絕了寫書這件事,但在筆者的心裡卻從此埋下了寫書的種子。
      幾個月之後,筆者終於想通了寫書這件事,覺得有兩點好處: 
      ①幫助更多的讀者掌握更多的C 開發知識,這是為筆者自己增加福報,也是為這個社會盡一點自己的微薄之力,做一個對社會有用的人; 
      ②擴大一下自身的知名度,增加收入,畢竟筆者也需要掙更多的錢養家,通過自己的勞動賺取收入,這是光榮的。
      當筆者把出書的想法說給盛東亮先生時,他非常高興並與筆者做了深入的溝通。我們二人年紀相仿,聊得很投機,在寫書這件事情上觀點也非常一致——希望這是一本高質量的、經典的C 書籍,是一本可以擺在書架上10年甚至20年的書籍,如果僅讓讀者選那麼二三本好的C 書時,希望這是其中一本。我相信,讀者從書名中也能感受到筆者對這本書的用心。
      在出書的交流過程中,盛先生給予了筆者相當多的支持與鼓勵。可以說,如果沒有盛先生當初的接洽和後續順暢愉快的交流,如果不是許多實際的工作都能在短的時間敲定並逐一落實,這本書也許根本不會出現在讀者面前。所以,這份感謝,筆者要送給盛東亮先生。

      C 知識體繫龐雜,而Linux C 通信架構方面的知識又具有相當的深度和難度。雖然筆者盡心盡力,但因水平所限,書中存在疏漏之處在所難免,懇請廣大讀者發現問題後不吝指教。
      編者2020年7月

    媒體評論
    (1)狂想老師的課真的太精彩了,服務器端開發小白看了之後簡直打通了任督二脈!誇!狂誇!希望大家都來買狂想老師的課!
    ——學員 午夜螳螂
    (2)*近搞個AI的特性,用上了你講的架構和epoll的接口設計,主管直接加薪5,加薪後超越的月薪了。
    ——學員 逆流順流/mg
    (3)我把老師的C 課程和對像模型都學習完了,前面兩門課程講的不錯,思路清晰,特別是講C 11一些新知識點,並不是拿出知識點硬塞給你,而是為了解決某些問題引入。這門課我也是*時間入手,相信老師的能力,非常好的課程!
    ——學員 三槍打死個麻辣燙
    (4)老師講的特別棒,全是干貨。
    ——學員 小姜很優雅

    (1)狂想老師的課真的太精彩了,服務器端開發小白看了之後簡直打通了任督二脈!誇!狂誇!希望大家都來買狂想老師的課!


    ——學員 午夜螳螂


    (2)*近搞個AI的特性,用上了你講的架構和epoll的接口設計,主管直接加薪5,加薪後超越的月薪了。


    ——學員 逆流順流/mg


    (3)我把老師的C 課程和對像模型都學習完了,前面兩門課程講的不錯,思路清晰,特別是講C 11一些新知識點,並不是拿出知識點硬塞給你,而是為了解決某些問題引入。這門課我也是*時間入手,相信老師的能力,非常好的課程!


    ——學員 三槍打死個麻辣燙


    (4)老師講的特別棒,全是干貨。


    ——學員 小姜很優雅


    (5)很感激遇到老師!其實作為一個不自信的女程序員,對自己的未來一直很迷茫和困惑。學習了課程之後有種撥開雲霧見月明之感,課程對我的意義不僅僅是知識的儲備,更是對自己未來的一個規劃和起步,也讓我知道了想要得到珍貴的東西就得先付出時間和努力。 謝謝老師,祝老師日進鬥金。


    ——學員 眼鏡貓咪


    (6)C 工作14年的老菜鳥來學藝,希望能得到質的飛躍!技術這東西不服牛人不行,有些地方自己自學不隻是多走彎路的事兒,是根本入不了道。


    ——學員 wx5823d


    (7)感謝老師的課程,之前學習過C 課程,已經跟老師學習了三個月了,收獲滿滿。老師的講解不僅讓我對C 語言本身和Linux通信相關知識有了深刻的理解,更重要的是讓我有了學習這些技術的思路和方向。如果沒有老師這精彩的課程,我這三個月的時間可能就浪費掉了。“師傅領進門,修行在個人”,老師不僅幫我打下了堅實的基礎,更幫我開啟了一扇門,感謝老師每一節課的認真講解,期待老師的更多課程。


    ——學員 NapoleoneOne


    (8)這門課程值得反復學習,*後融入到項目中去,老師的講解真是清晰易懂,非常適合自學者。


    ——學員 牛客人


    (9)這個課程真的非常棒,之前沒什麼項目經驗,所以沒信心,學完這個課之後感覺自己提升很多,學到了很多知識,自信心增加,對我找工作幫助很大,感謝老師!


    ——學員 ykt1508


    (10)老師講的真心好,不知不覺幫我解決了很多工作中遇到的沒有理解透的難點,非常實用。如果不聽老師的課,僅靠自己真是太難了,感謝老師讓從事8年C語言工作的我重拾信心。


    ——學員 mathlxy

















     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部