• <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++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(54)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            IMC-SDK

            Instant Message Communication 開發工具包

             

            作為即時通信軟件的底層通信功能被獨立分隔出來,同樣也可以以用于其他的通信需求.

            IMCACEICE吸收優秀的概念和技術,通信處理不免都是C/S的模式,一頭請求,另外一頭接收處理并返回處理結果. Ice一樣,所有操作都 被視為遠程調用RPC。

            不同的應用需求,在設計開發時,我們將定義無數的數據類型影射到應用模型對象,并被序列化傳輸到遠端,這些編碼工作無疑是容易出錯的,并且是令人沮喪的。既然是RPC的一種實現,IDL是好的中間語言,所有的應用模型都可以定義在IDL,通過slice工具將其翻譯到不同的實現語言,slice將處理好數據對象的Marshalling&UnMarshalling等工作。

            IMCICE的相同:

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

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

            支持同步和異步調用;支持oneway調用

            支持參數的out

             

            IMCICE不同之處:

            IMC 不支持class;接口不能被當作參數傳遞;

             

             

            支持TcpUDT通信方式,tcpudt的連接(connection)上進行雙向的Rpc調用(Ice一般在一個連接上是單向的)。

             

            調用的返回:

            1.      同步調用: 

            1.1. 接收到返回結果

            1.2. 超時(timeout調用時)

            1.3. 連接(connection)斷開

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

            2.      異步調用:

            即可返回

             

            函數序列化(operator):

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

                     字節流到函數參數時,先從包內找出此次調用接口的類型,根據函數編號找到解析此參數棧的函數,并將剩余的字節流傳遞到以上函數去解析

             

            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};

             

            //解碼字節到函數參數,并最終調用Rpc函數

            //以下代碼自動生成

            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 放屁阿狗 閱讀(288) 評論(0)  編輯 收藏 引用 所屬分類: OpenSource開源工程
            久久久久香蕉视频| 久久综合狠狠色综合伊人| 久久久午夜精品| 蜜臀久久99精品久久久久久小说 | 精品一区二区久久久久久久网站| 久久99国产精品久久99果冻传媒| 无码人妻少妇久久中文字幕| 亚洲国产精品成人久久| 久久精品国产亚洲一区二区三区| 国产精品久久久久久久人人看| 嫩草影院久久国产精品| 久久精品青青草原伊人| 大蕉久久伊人中文字幕| 久久午夜伦鲁片免费无码| 亚洲国产高清精品线久久| 91亚洲国产成人久久精品| 久久亚洲精品国产精品| 日本精品久久久久影院日本| 97久久超碰国产精品旧版| 欧美日韩精品久久久久| 国内精品免费久久影院| 亚洲综合精品香蕉久久网97| 蜜臀av性久久久久蜜臀aⅴ| 久久人人添人人爽添人人片牛牛| 国内精品久久久久久久亚洲| 99久久婷婷免费国产综合精品| 亚洲中文字幕无码久久2017| 日韩久久无码免费毛片软件| 国产 亚洲 欧美 另类 久久| 日本道色综合久久影院| 99久久精品国产综合一区| 97久久超碰成人精品网站| 久久大香香蕉国产| 国产精品久久久久久影院| 91久久精一区二区三区大全| 久久天天躁狠狠躁夜夜96流白浆 | 看全色黄大色大片免费久久久| 国产69精品久久久久99| 久久久久人妻一区精品果冻| 狠狠色伊人久久精品综合网 | 中文国产成人精品久久亚洲精品AⅤ无码精品 |