新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > MSMQ技術在Windows Mobile系統通信中應用

        MSMQ技術在Windows Mobile系統通信中應用

        作者:尚爾明 沈陽市電信規劃設計院 王長濤 沈陽建筑大學信息與控制工程學院 于天明 沈陽市華域建筑設計有限公司 時間:2010-03-09 來源:電子產品世界 收藏

          接收

        本文引用地址:http://www.104case.com/article/106704.htm

          接收相比發送要復雜一些。接收消息有兩種方式:通過Receive方法接收消息同時永久性地從隊列中刪除消息;通過Peek方法從隊列中取出消息而不從隊列中移除該消息。如果知道消息的標識符(ID),還可以通過ReceiveById方法和PeekById方法完成相應的接收消息操作。

          接收消息的代碼如下:

          Mq.Receive(); //或

          Mq.ReceiveById(ID);

          Mq.Peek(); // 或

          Mq.PeekById(ID);

          閱讀消息

          只有通過根據雙方的約定將接收到的消息中信息提取出來,傳遞的消息才有價值,因此接收到消息以后還必須能讀出消息中包含的信息。在發送端的應用程序發送的消息和中的傳輸消息的格式不同,因而發送端的應用程序發送出去的消息經過序列化以后才發送給了,這一過程由系統自動完成了,程序開發人員不必為此編寫代碼,然而在接收到消息后就需要對接收的消息進行反序列化。

          消息的反序列化可以通過Visual Studio和.NET Framework附帶的三個預定義的格式化程序來完成:XMLMessageFormatter對象(MessageQueue組件的默認格式化程序設置)、BinaryMessageFormatter對象、ActiveXMessageFormatter對象。由于后兩者格式化后的消息通常不能被用戶閱讀,所以經常采用XMLMessageFormatter對象對接收的消息進行反序列化。

          使用XMLMessageFormatter對象反序列化消息的代碼如下:

          string[] types = { "System.String" };

          ((XmlMessageFormatter)mq.Formatter).TargetTypeNames = types;

          Message m=mq.Receive(new

          TimeSpan(0,0,3));

          將接收到的消息傳送給消息變量以后,通過消息變量m的Body屬性就可以讀出消息了:

          MessageBox.Show((string)m.Body);

          關閉

          關閉消息隊列可以通過Close函數來實現,代碼如下:

          Mq.Close();

          結語

          基于平臺的高速無線網絡為各行業客戶提供更加可靠便捷的移動解決方案。消息隊列技術保證移動設備與數據中心之間進行良好的。通過對平臺上,發送、接收和閱讀消息工作過程的講解說明消息隊列技術簡單實用。基于技術的平臺系統已經在國內某大型客車企業生產追蹤系統中得到應用。

        數字通信相關文章:數字通信原理


        通信相關文章:通信原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 水城县| 宕昌县| 上思县| 上蔡县| 鹿泉市| 固阳县| 福州市| 黄平县| 安达市| 武陟县| 永善县| 吉木萨尔县| 定南县| 南川市| 元谋县| 尉氏县| 五大连池市| 丁青县| 基隆市| 寻甸| 平利县| 鄢陵县| 永春县| 余干县| 德州市| 望都县| 蓝山县| 明星| 九龙县| 涿鹿县| 大埔县| 定远县| 响水县| 萍乡市| 盐亭县| 涞水县| 鄂州市| 文昌市| 娱乐| 柳林县| 凤凰县|