muduo 網路庫學習之路(一)

来源:https://www.cnblogs.com/chenqiankun1998/archive/2019/03/25/mouhaha.html
-Advertisement-
Play Games

前提介紹: 本人是一名大三學生,主要使用C++開發,興趣是高性能的伺服器方面。 網路開發離不開網路庫,所以今天開始學一個新的網路庫,陳老師的muduo庫 我參考的書籍就是陳老師自己關於muduo而編著這本《linux多線程伺服器編程》 為什麼選擇muduo網路庫: 我當初選擇muduo網路庫有三個方 ...


前提介紹:

  本人是一名大三學生,主要使用C++開發,興趣是高性能的伺服器方面。

  網路開發離不開網路庫,所以今天開始學一個新的網路庫,陳老師的muduo庫

  我參考的書籍就是陳老師自己關於muduo而編著這本《linux多線程伺服器編程》

 

為什麼選擇muduo網路庫:

  我當初選擇muduo網路庫有三個方面的原因,第一點就是muduo網路庫的代碼完全開源,我們可以很輕鬆的通過看muduo的源碼來分析muduo在伺服器開發中到底使用了什麼技術

  其次muduo的框架並不是特別的複雜, 適合本人這種小白學習,並不是ACE那種特別龐大的網路庫,不適合人來學習

  muduo的C++寫法十分符合最新的C++寫法,大部分使用了C++11的新特性,而不像很多其他開源C++網路庫,裡面還是會看到C的影子,更適合我們瞭解原本的C++而不被C的東西帶偏了

 

muduo的下載與安裝(本人使用ubuntu18.10)

  muduo的源碼在github上面就能找到,但是編譯和安裝,你需要安裝一些基礎工具

  首先安裝cmake:

    sudo apt-get install cmake

  muduo依賴於Boost:

    sudo apt-get install libboost-dev libboost-test-dev

  muduo還有三個非必須的依賴庫,example有些事例依賴於這些

    sudo apt-get install libcurl4-openssl-dev libc-ares-dev

    sudo apt-get install protobuf-compiler libprotobuf-dev

  muduo的編譯方法也很簡單(我用的muduo-2.0.0):

    tar zxf muduo-2.0.0.tar.gz

    cd muduo/

    ./build.sh -j2

  如果想使用的話,需要講編譯出來的文件夾裡面的lib導入到你的/usr/lib文件夾中

  頭文件也可以放到/usr/include文件夾中,這樣你就可以使用<>導入頭文件

 

muduo的結構目錄:

  我們可以使用tree命令來查看這個網路庫文件的架構

  如果沒有tree工具,可以在ubuntu上面直接使用apt安裝

  這裡可以看見一個example,裡面含有大量的測試事例,我們可以通過這些例子來充分學習muduo網路庫的知識和用法


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 圖片校驗碼原理就是圖片是後端生成的前端只是前後端傳過來的數據流做些處理展示即可,先直接上核心代碼圖: 這裡就是簡單得對axios的一些預設項屬性重寫:最後你只需要將resolve的內容插入頁面的<img src="resolve(data:img/png;base64,&{base64})">即可, ...
  • 把常見的日期格式如:YYYY-MM-DD 轉換成一種更易讀的格式。 易讀格式應該是用月份名稱代替月份數字,用序數詞代替數字來表示天 (1st 代替 1). 記住不要顯示那些可以被推測出來的信息: 如果一個日期區間里結束日期與開始日期相差小於一年,則結束日期就不用寫年份了;在這種情況下,如果月份開始和 ...
  • 一、基於度量對程式結構的分析 1. 第一次作業 1.1 基於類的分析的度量 首先,基於類的屬性個數,方法個數,每個方法的規模,每個方法的控制分支數目,類總代碼規模等特征對本次作業的結構進行分析。 1.2 基於類間內聚和耦合的度量 我使用了MetricsReloaded插件來對代碼的複雜度進行了分析。 ...
  • Sentry(直譯為:哨兵)是一個開源錯誤跟蹤服務,幫助開發人員實時監控和修複崩潰 Sentry本質上是一種幫助您實時監控和修複崩潰的服務 1. 安裝客戶端SDK 這裡我們安裝Java平臺的SDK,而且使用logback的方式集成 https://docs.sentry.io/clients/jav ...
  • 前言 開心一刻 那年去相親,地點在飯店裡,威特先上了兩杯水,男方紳士的喝了一口,咧嘴咋舌輕放桌面,手撫額頭閉眼一臉陶醉,白水硬是喝出了82年拉菲的感覺。如此有生活情調的幽默男人,果斷拿下,相處後卻發現他比較木訥,問他為什麼那天喝水那麼有趣,他仰頭道:鬼知道那杯水怎麼那麼燙啊! 是什麼 Factory ...
  • 摘要:本文使用了7中方法實現在多線程中讓線程按順序運行的方法,主要目的是讓讀者對多線程的使用有更深刻的瞭解。 ...
  • 讀了一本還不錯的書「編寫高質量代碼改善 Python 程式的 91 個建議」,大多數的建議是真心不錯,我雖然寫python也有3年多了,但是有些地方確實沒去註意過,特地整理了一下,給大家參考。 我已經打包好了一份電子書,有興趣的可以關註公眾號:**Python專欄**。後臺回覆:**91個建議**... ...
  • 原文鏈接:Learn C++ Multi-Threading in 5 Minutes C++14的新的多線程架構非常簡單易學,如果你對C或者C++很熟悉,那麼本文非常適合你。作者用C++14作為基準參考,但是所介紹的東西在C++17中也依然適用。本文只介紹基本的架構,在讀完本文後你應該也可以自己編 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...