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