在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種嵌入式RPC的設計與實現(xiàn)

            一種嵌入式RPC的設計與實現(xiàn)

            作者: 時間:2011-06-10 來源:網(wǎng)絡 收藏

            1.4 Sun
            Sun 有時也稱為ONC(Open Network Computing)。Sun RPC提供了一個接口語言IDL和rpcgen用于C語言支持。這門語言可以定義constants,typedef,structure,union。rpcgen可以產(chǎn)生server code,client stub和頭文件。server code主要是建立socket,注冊端口和監(jiān)聽,接受連接,拆參數(shù),調(diào)用實際的過程,打包返回值。client stub則是打包參數(shù),發(fā)送給server,將返回值解包。Sun RPC缺點就是對Windows沒有很好的支持。

            2
            與傳統(tǒng)的模型不同,服務器端分為:網(wǎng)絡通訊,接收狀態(tài)機和過程處理??蛻舳朔譃榫W(wǎng)絡通訊,發(fā)送狀態(tài)機和過程調(diào)用。
            圖3是服務器端的狀態(tài)機。服務器進程從初始狀態(tài)進入GetHeader狀態(tài)。GetHeader是讀取遠程過程調(diào)用的頭信息。如果一次得到了所有數(shù)據(jù),也就是nCurLen>=dwTotalSize,則進入GetComplatePacket狀態(tài),反之進入GetData狀態(tài)。GetData是讀取參數(shù)數(shù)據(jù),讀取數(shù)據(jù)直到得到所有的數(shù)據(jù)進入GetComplatePacket狀態(tài)。期間如果超時,則回到GetHeader狀態(tài)。超時的起始時間從GetHeader韻第一個字節(jié)算起,如果在定義的時間無法讀取dwTotalSize個字節(jié),則Timeout從而回到GetHeader狀態(tài)。在GetHeader和GetData時,如果讀取數(shù)據(jù)有錯誤(如客戶端斷開連接,recv函數(shù)返回錯誤)則狀態(tài)機退出。GetComplatePacket是得到了完整的包。CheckCall判斷當前的調(diào)用是否是有效的過程調(diào)用。如果無效則進入狀態(tài),并回復無效命令給客戶端,最后進入GetHeader狀態(tài)。如果有效,則處理此調(diào)用,最后發(fā)送結果給客戶端。

            本文引用地址:http://www.biyoush.com/article/150615.htm

            c.JPG d.JPG


            圖4為客戶端狀態(tài)機。首先是打包參數(shù),發(fā)送到服務器端,等待服務器端的回復,進入GetHeader狀態(tài)。GetHeader,GetData和Get Com-plate Packet與服務器相應的狀態(tài)意義相同。如果timeout則返回timeout錯誤。如果得到了整個packet則拆分最后返回。
            DCE—RPC和ONC—RPC允許選擇UDP或TCP協(xié)議。TCP協(xié)議傳輸控制協(xié)議,提供的是面向連接、可靠的字節(jié)流服務。UDP協(xié)議不提供可靠性,它只是把應用程序傳給IP層的數(shù)據(jù)報發(fā)送出去,但是并不能保證它們能到達目的地?;赥CP協(xié)議的可靠性,選擇TCP作為通訊協(xié)議。
            3
            3.1 數(shù)據(jù)結構
            服務器和客戶用共用包頭信息和每個過程的參數(shù)結構。頭信息定義如下。dwCallID是過程的標識號。每個過程都有一個唯一的號碼。bCallType是調(diào)用的類型。dwTotalSize是整包的字節(jié)數(shù)。dwReturn是返回結果。
            e.JPG

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評論


            相關推薦

            技術專區(qū)

            關閉