• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            socketref,再見!高德

            https://github.com/adoggie

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            IMC-SDK

            Instant Message Communication 開發(fā)工具包

             

            作為即時(shí)通信軟件的底層通信功能被獨(dú)立分隔出來(lái),同樣也可以以用于其他的通信需求.

            IMCACEICE吸收優(yōu)秀的概念和技術(shù),通信處理不免都是C/S的模式,一頭請(qǐng)求,另外一頭接收處理并返回處理結(jié)果. Ice一樣,所有操作都 被視為遠(yuǎn)程調(diào)用RPC

            不同的應(yīng)用需求,在設(shè)計(jì)開發(fā)時(shí),我們將定義無(wú)數(shù)的數(shù)據(jù)類型影射到應(yīng)用模型對(duì)象,并被序列化傳輸?shù)竭h(yuǎn)端,這些編碼工作無(wú)疑是容易出錯(cuò)的,并且是令人沮喪的。既然是RPC的一種實(shí)現(xiàn),IDL是好的中間語(yǔ)言,所有的應(yīng)用模型都可以定義在IDL,通過slice工具將其翻譯到不同的實(shí)現(xiàn)語(yǔ)言,slice將處理好數(shù)據(jù)對(duì)象的Marshalling&UnMarshalling等工作。

            IMCICE的相同:

            采用一致的數(shù)據(jù)類型(int,byte,short,long,float,double,string)

            一致的通信協(xié)議定義,參考ice1.3文檔

            支持同步和異步調(diào)用;支持oneway調(diào)用

            支持參數(shù)的out

             

            IMCICE不同之處:

            IMC 不支持class;接口不能被當(dāng)作參數(shù)傳遞;

             

             

            支持TcpUDT通信方式,tcpudt的連接(connection)上進(jìn)行雙向的Rpc調(diào)用(Ice一般在一個(gè)連接上是單向的)

             

            調(diào)用的返回:

            1.      同步調(diào)用: 

            1.1. 接收到返回結(jié)果

            1.2. 超時(shí)(timeout調(diào)用時(shí))

            1.3. 連接(connection)斷開

            1.4. 系統(tǒng)結(jié)束處于終止清理階段(將刪除所有的connection)

            2.      異步調(diào)用:

            即可返回

             

            函數(shù)序列化(operator):

                     參數(shù)支持INOUT類型,但不支持 INOUT類型,且OUT類型必須在IN之后被定義(ice)。每個(gè)函數(shù)(operator)都將有一個(gè)僅對(duì)于interface內(nèi)的索引編號(hào)(integer),參數(shù)將被置于參數(shù)棧(ParameterStack).

                     字節(jié)流到函數(shù)參數(shù)時(shí),先從包內(nèi)找出此次調(diào)用接口的類型,根據(jù)函數(shù)編號(hào)找到解析此參數(shù)棧的函數(shù),并將剩余的字節(jié)流傳遞到以上函數(shù)去解析

             

            Struct OperatorMap{

                     Int  index;

                     String name;

                     Void decode(ByteArray& bytes);

            };

            Class Security{

            Virtual string close(int reason);

            Friend __security_decode_close;

            }

            Static __security_decode_close(ByteArray& bytes, void* obj);

            OperatorMap __omap_security={0,”close”,__security_decode_close};

             

            //解碼字節(jié)到函數(shù)參數(shù),并最終調(diào)用Rpc函數(shù)

            //以下代碼自動(dòng)生成

            ParameterStack __security_decode_close(ByteArray& bytes, void* obj){

                     Security * sec = (Security*)obj;

                     Parameter p;

                     ParameterStack pstack;

            P = unMarshallingParameter(bytes,”int”);

            Int reason = p;

                     P = Sec->close(reason);

                     Pstack.push(p);

                     Return pstack;

            }

             

             

            posted on 2010-09-24 02:13 放屁阿狗 閱讀(287) 評(píng)論(0)  編輯 收藏 引用 所屬分類: OpenSource開源工程
            久久久久久久久久久久久久| 99久久超碰中文字幕伊人| 亚洲女久久久噜噜噜熟女| 久久久久亚洲AV无码永不| 97精品伊人久久久大香线蕉| 日韩AV无码久久一区二区| 久久无码一区二区三区少妇| 国产成人久久精品激情| 国产精品久久久香蕉| 99久久精品国产一区二区| 久久婷婷激情综合色综合俺也去| 蜜桃麻豆www久久国产精品| 久久亚洲国产中v天仙www| 亚洲色大成网站www久久九| 亚洲国产成人久久一区WWW| 成人午夜精品久久久久久久小说| 久久香蕉一级毛片| AV无码久久久久不卡蜜桃| 久久九九久精品国产免费直播| 亚洲国产成人久久综合一区77 | 久久96国产精品久久久| 久久成人国产精品二三区| 久久亚洲春色中文字幕久久久| 久久九九精品99国产精品| 秋霞久久国产精品电影院| 91久久九九无码成人网站| 老司机午夜网站国内精品久久久久久久久 | 久久精品无码专区免费青青 | 青青草原综合久久大伊人| 久久精品国产乱子伦| 久久精品国产99国产精品澳门| 99久久精品免费| 欧美一区二区三区久久综合| 国内精品久久久久影院一蜜桃| 精品无码人妻久久久久久| 老男人久久青草av高清| 99精品伊人久久久大香线蕉 | 久久国产成人精品国产成人亚洲| 青青热久久国产久精品| 丁香色欲久久久久久综合网| 精品久久国产一区二区三区香蕉|