開發并發網絡軟件的C++框架: HPServer

jopen 10年前發布 | 16K 次閱讀 HPServer 網絡工具包

開源的C++并發網絡編程框架。可以當做一個入門級的網絡編程框架閱讀。

雖然主頁上介紹"HPServer is a free, open-source light-weighted framework for concurrent networking software. ",但是實際上hpserver完成事情是相當有限的。 類似于libevent,沒有管理線程,內部也沒有異步隊列的實現。所以基本上可以認為就是一個libevent的簡單實現。hpserver的特點有下面這些:

  • object-oriented;

  • high-performance;

  • cross-platform, support windows & linux;

  • event-driven;

  • support I/O events, timer, and signals;  // 支持IO事件,定時器和信號

  • support acceptor-connector pattern internally, which will faciliates your programming;

  • support multithread; // 這里所謂的支持多線程猜想意思應該就是允許我們開辟多個reactor對象在多個線程里面使用

hpserver的類設計感覺有點麻煩,而且在信號處理方面類設計并不優雅。hpserver引入很多概念,了解這些概念倒是非常有幫助。 hpserver設計的時候將 event handler,event item,handle(fd或者是信號編號)分開了,但是閱讀代碼就會發現這些東西都是1:1:1進行綁定的。對于IO來說還可以接受,但是對于信號處理就非常悲劇了, 因為對于每一種信號必須產生一個EventHandler實例。不過還好我們關注的信號還是比較有限的,所以開辟的EventHandler還不算太多。這個從samples/signal-handler.cpp就可以看出來。

項目主頁:http://www.baiduhome.net/lib/view/home/1387620510218

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!