亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
123下一頁
最近訪問板塊 發(fā)新帖
查看: 9981 | 回復(fù): 22
打印 上一主題 下一主題

Herm Library快速構(gòu)建高效且復(fù)雜的C++網(wǎng)絡(luò)服務(wù)器 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-10-21 21:00 |只看該作者 |倒序?yàn)g覽
本庫分為3部分:framework, socket, utils,原先只開放了socket這部分,現(xiàn)在加入另外兩部分。
socket部分在這里發(fā)過帖子,
   支持Windows&Linux&FreeBSD多路復(fù)用開源庫, http://www.72891.cn/thread-1650238-1-1.html

完整部分請(qǐng)?jiān)L問herm lib blog:
  http://blog.csdn.net/herm_lib

評(píng)分

參與人數(shù) 1可用積分 +2 收起 理由
醉臥水云間 + 2

查看全部評(píng)分

論壇徽章:
27
處女座
日期:2016-04-18 14:00:4515-16賽季CBA聯(lián)賽之福建
日期:2023-03-31 15:54:2315-16賽季CBA聯(lián)賽之深圳
日期:2020-06-02 10:10:5015-16賽季CBA聯(lián)賽之廣夏
日期:2019-07-23 16:59:452016科比退役紀(jì)念章
日期:2019-06-26 16:59:1315-16賽季CBA聯(lián)賽之天津
日期:2019-05-28 14:25:1915-16賽季CBA聯(lián)賽之青島
日期:2019-05-16 10:14:082016科比退役紀(jì)念章
日期:2019-01-11 14:44:062016科比退役紀(jì)念章
日期:2018-07-18 16:17:4015-16賽季CBA聯(lián)賽之上海
日期:2017-08-22 18:18:5515-16賽季CBA聯(lián)賽之江蘇
日期:2017-08-04 17:00:4715-16賽季CBA聯(lián)賽之佛山
日期:2017-02-20 18:21:13
2 [報(bào)告]
發(fā)表于 2010-10-21 21:42 |只看該作者
樓主你自己寫的 ?

論壇徽章:
1
CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34
3 [報(bào)告]
發(fā)表于 2010-10-21 22:52 |只看該作者
學(xué)習(xí)。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-10-24 16:26 |只看該作者
本帖最后由 daem0n 于 2010-10-24 16:28 編輯

Herm程序員開發(fā)指導(dǎo)(http://blog.csdn.net/herm_lib)

目錄

第1章 概述

第2章 Herm Framework

第3章 Herm Socket

第4章 Herm Utils

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-10-24 16:27 |只看該作者
本帖最后由 daem0n 于 2010-10-24 16:29 編輯

第1章 概述

1.1 什么是Herm

      Herm是一套快速開發(fā)高性能的網(wǎng)絡(luò)應(yīng)用的C++庫。比如開發(fā)網(wǎng)絡(luò)游戲、即時(shí)通信、流媒體、文件下載、P2P等基于TCP/IP網(wǎng)絡(luò)應(yīng)用。

      Herm包括三個(gè)組件:

      (1)Utilities

      最基礎(chǔ)的組件,提供線程、一讀一寫線程不加鎖的ring buffer、二進(jìn)制消息解析器、支持多態(tài)的對(duì)象管理器等。

      (2)Socket

       用面向?qū)ο蠛头盒偷姆椒ǔ橄罅薚CP/UDP的Socket IOs;抽象了Win32 Select、Linux epoll和FreeBSD kqueue的多路復(fù)用API。統(tǒng)一了三者水平模式(Level Triggered)的語義(一套代碼在Win32/Linux/FreeBSD運(yùn)行結(jié)果是一樣的),Linux上也支持了邊緣模式(Edge Triggered)。

      (3)Framework

       基于Utilities和Socket的簡化開發(fā)網(wǎng)絡(luò)應(yīng)用的框架,抽象出Peer和Session對(duì)象。Peer和Session對(duì)象以及Framework實(shí)現(xiàn)的功能將在第2章介紹。

       Herm目前僅支持Linux/Windows/FreeBSD 32bits平臺(tái)。調(diào)用者可以基于不同的需求使用不用的組件。

1.2 最簡單的例子

      本節(jié)給出兩個(gè)分別用Framework和Socket組件實(shí)現(xiàn)的簡單TCP Server的例子。所有的例子可以參考examples frameworks和multiplexors目錄。

1.2.1  用Framework實(shí)現(xiàn)TCP Server

      首先,實(shí)現(xiàn)一個(gè)Listener,

      class Listener : public Herm::Listener

      {
            virtual void Accept(Herm::Session* session)

            {      

                   // 在這里得到一個(gè)于客戶端通信的Session

                   // 注冊(cè)用于處理收到的消息的handler

                   // 用Session:: Push將數(shù)據(jù)寫到發(fā)送buffer,最終數(shù)據(jù)傳給client

            }

       };

       實(shí)現(xiàn)一個(gè)App,

       class App : public Herm::App
       {
              virtual bool Init()

              {

                      // 1. 創(chuàng)建Network

                      Herm::Network* net = CreateNetwork();

                      // 2. 創(chuàng)建一個(gè)TCP Server Peer,將Listener注冊(cè)到Peer,進(jìn)行監(jiān)聽
                      Herm:: Peer* peer = net->CreateTCPServer(addr,  new Listener);

              }
       };

1.2.2 用Socket實(shí)現(xiàn)TCP Server

       用Socket實(shí)現(xiàn)TCP Server更靈活,但實(shí)現(xiàn)者要做一些額外的工作,比如tcp stream解析,緩沖隊(duì)列處理等等。

       首先實(shí)現(xiàn)一個(gè)AcceptHandler,處理Client連接,

       class  AcceptHandler : public Herm::EventHandler
       {
              virtual int Receive(int)

              {

                      m_acceptor->Accept(streamHandler->GetStream());
                      g_reactor->Register(streamHandler, Herm::READ_MASK);

                      ...

               }

        private:

              Herm::Acceptor* m_acceptor;

        };

        實(shí)現(xiàn)StreamHandler, 處理數(shù)據(jù)收發(fā),

        class StreamHandler : public Herm::EventHandler

        {
               // Handle onle int param on FreeBSD, pls see the example of FreeBSD_tcp_server
               virtual int Receive(int)

               {

                       m_stream->Recieve(buf, .......);

                       .....

               }

        private:
               Herm::Stream* m_stream;
        };

        最后,在一個(gè)線程里把上面Handler執(zhí)行起來,

        while (true)

              g_reactor->Run();

1.3 Herm地址

      https://sourceforge.net/projects/speed/

1.4 下一章話題

      下章將較詳細(xì)地介紹Framework組件,主要介紹如何用Framework實(shí)現(xiàn)真實(shí)可用的網(wǎng)絡(luò)游戲的接入網(wǎng)關(guān)Server(gated)和邏輯Server(zoned)。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-10-25 20:32 |只看該作者
up.

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-11-08 10:44 |只看該作者
lz 愿意開放commit權(quán)限嗎? 還有開發(fā)計(jì)劃,本人可以貢獻(xiàn)代碼。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-11-08 11:13 |只看該作者
回復(fù) 7# cnhbdu
把你加為開發(fā)人員,就有commit權(quán)限了。請(qǐng)短信。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-11-13 15:52 |只看該作者
支持樓主~

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-11-13 16:58 |只看該作者
這套東西是本人這幾年做的幾套網(wǎng)絡(luò)服務(wù)器(包括IM/網(wǎng)游服務(wù)器)的總結(jié),最近一直在修改代碼,使這套代碼更通用。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP