新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > MSMQ技術(shù)在Windows Mobile系統(tǒng)通信中應(yīng)用

MSMQ技術(shù)在Windows Mobile系統(tǒng)通信中應(yīng)用

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

  接收

本文引用地址:http://m.butianyuan.cn/article/106704.htm

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

  接收消息的代碼如下:

  Mq.Receive(); //或

  Mq.ReceiveById(ID);

  Mq.Peek(); // 或

  Mq.PeekById(ID);

  閱讀消息

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

  消息的反序列化可以通過Visual Studio和.NET Framework附帶的三個預(yù)定義的格式化程序來完成:XMLMessageFormatter對象(MessageQueue組件的默認(rèn)格式化程序設(shè)置)、BinaryMessageFormatter對象、ActiveXMessageFormatter對象。由于后兩者格式化后的消息通常不能被用戶閱讀,所以經(jīng)常采用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);

  關(guān)閉

  關(guān)閉消息隊列可以通過Close函數(shù)來實現(xiàn),代碼如下:

  Mq.Close();

  結(jié)語

  基于平臺的高速無線網(wǎng)絡(luò)為各行業(yè)客戶提供更加可靠便捷的移動解決方案。消息隊列技術(shù)保證移動設(shè)備與數(shù)據(jù)中心之間進行良好的。通過對平臺上,發(fā)送、接收和閱讀消息工作過程的講解說明消息隊列技術(shù)簡單實用?;?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/MSMQ">MSMQ技術(shù)的平臺系統(tǒng)已經(jīng)在國內(nèi)某大型客車企業(yè)生產(chǎn)追蹤系統(tǒng)中得到應(yīng)用。

數(shù)字通信相關(guān)文章:數(shù)字通信原理


通信相關(guān)文章:通信原理




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉