摘要: 本文以一個 Sudoku Solver 為例,回顧了并發網絡服務程序的多種設計方案,并介紹了使用 muduo 網絡庫編寫多線程服務器的兩種最常用手法。以往的例子展現了 Muduo 在編寫單線程并發網絡服務程序方面的能力與便捷性,今天我們看一看它在多線程方面的表現。
閱讀全文
摘要: 本文介紹用 muduo 實現一個簡單的 topic-based 消息廣播服務,這其實是“聊天室”的一個簡單擴展,不過聊天的不是人,而是分布式系統中的程序。
閱讀全文
摘要: 這是《Muduo 網絡編程示例》系列的第一篇文章。本文將介紹五個簡單 TCP 網絡服務協議的 muduo 實現,包括 echo、discard、chargen、daytime、time,以及 time 協議的客戶端。以上五個協議使用不同的端口,可以放到同一個進程中實現,且不必使用多線程。
閱讀全文
摘要: 我將會寫一系列文章,介紹用 muduo 網絡庫完成常見的 TCP 網絡編程任務。這些例子都比較簡單,邏輯不復雜,代碼也很短,適合摘取關鍵部分放到博客上。其中一些有一定的代表性與針對性,比如“如何傳輸完整的文件”估計是網絡編程的初學者經常遇到的問題。
閱讀全文
摘要: 這回我們用 libevent2 自帶的性能測試程序(擊鼓傳花)來對比 muduo 和 libevent2 在高并發情況下的 IO 事件處理效率。結論:muduo 與 libevent2 總體比較接近,各擅勝場。在并發量特別大的情況下(大于 10k),muduo 略微占優。
閱讀全文
摘要: libevent 是一款非常好用的 C 語言網絡庫,它也采用 Reactor 模型,正好可以與 muduo 做一對比。
本文用 ping pong 測試來對比 muduo 和 libevent2 的吞吐量,測試結果表明 muduo 吞吐量平均比 libevent2 高 18% 以上,個別情況達到 70%。
閱讀全文
摘要: muduo 是一個基于 Reactor 模式的 C++ 網絡庫,我在編寫它的時候并沒有以高并發高吞吐為主要目標,但出乎我的意料,ping pong 測試表明,muduo 吞吐量比 boost.asio 高 15% 以上。
閱讀全文
摘要: Muduo 是我在業余時間編寫的基于 Reactor 模式的 C++ 網絡庫,適用于 Linux 平臺,支持多線程。本文主要介紹 muduo 網絡庫的使用。其設計與實現將有另文講解。
閱讀全文