《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > MSMQ技術在Windows Mobile系統通信中應用
MSMQ技術在Windows Mobile系統通信中應用
摘要: 隨著3G網絡技術、市場和政策的不斷成熟,移動終端設備的使用量在急速增加,廣泛應用各個領域。Windows Mobile是微軟為智能移動終端設備開發的操作系統,Windows Mobile將用戶熟悉的桌面Windows體驗擴展到了移動設備上。Windows Mobile為移動終端設備之間的數據交換和信息共享提供了簡單、安全的解決方案。在Windows Mobile平臺上的數據通信技術有Socket、Web Service、MSMQ(微軟消息隊列技術)。Socket傳送數據會自定義傳送數據格式并且服務端要使用到多線程接收客戶端信息,編程復雜且不好控制;Web Service編程簡單易控制,但是只可能調用服務端的函數不能實現服務端和客戶端相互通信;MSMQ是微軟提供的一種可以遠程訪問的異步通訊方式,支持轉發,支持延時發送,并且具有較高安全性,是當前Windows Mobile平臺上最可靠的數據通信方法。
Abstract:
Key words :

引言

隨著3G網絡技術、市場和政策的不斷成熟,移動終端設備的使用量在急速增加,廣泛應用各個領域。Windows Mobile是微軟為智能移動終端設備開發的操作系統,Windows Mobile將用戶熟悉的桌面Windows體驗擴展到了移動設備上。Windows Mobile為移動終端設備之間的數據交換和信息共享提供了簡單、安全的解決方案。在Windows Mobile平臺上的數據通信技術有Socket、Web Service、MSMQ(微軟消息隊列技術)。Socket傳送數據會自定義傳送數據格式并且服務端要使用到多線程接收客戶端信息,編程復雜且不好控制;Web Service編程簡單易控制,但是只可能調用服務端的函數不能實現服務端和客戶端相互通信;MSMQ是微軟提供的一種可以遠程訪問的異步通訊方式,支持轉發,支持延時發送,并且具有較高安全性,是當前Windows Mobile平臺上最可靠的數據通信方法。

MSMQ技術

Message Queue(微軟消息隊列)是在多個不同應用程序(終端或服務)之間實現相互通信的一種異步傳輸模式,相互通信的應用程序可以分布于同一臺機器上,也可以分布于相連的網絡空間中的任一終端。消息是通信的雙方所需要傳遞的信息,它可以是各種對象,如文本、聲音和圖像等。消息最終的實現方式是由消息傳遞的雙方共同制定的協議來規定,這樣做的好處,既對數據進行了簡單的加密,也可以減輕系統通信的負擔。其實現原理是消息的發送者把自己想要發送的信息放入一個容器中(Message),然后將其保存到一個系統公用空間的消息隊列中;本地或者是異地的消息接收程序再從該隊列中取出發給它的消息進行處理。

由于采用的是異步通信方式,無論是發送程序還是接收程序都不用等待對方返回成功發送消息的標志,就可以執行余下的代碼,因而提高了系統的處理能力。當信息傳送過程中,信息發送機制具有故障恢復能力;MSMQ的消息傳遞機制使得消息通信的雙方具有通過不同的物理平臺進行通信的能力。在支持.net技術的操作系統上利用其提供的MSMQ功能,可以輕松創建或者刪除消息隊列,發送或者接收消息,并具有對消息隊列進行管理。消息隊列是發送和接收消息的公用存儲空間,它可以存在于內存中或者是物理文件中。

系統結構與軟件配置

系統結構

針對客車業生產現場數據采集系統實例,由于客車生產屬于混合流水生產行業,工序和工藝路線復雜、人工參與生產多、客車比其他產品體積龐大,所以需要現場人員使用PDA掃描生產現場數據和上報生產進度狀況。車間和廠區范圍大,車間環境復雜,整個網絡采用無線通信的方式。PDA中裝有Windows Mobile系統,在PDA中可以安裝各種應用程序,例如條碼掃描、車間物料供需程序和生產現場調度程序。在PDA上也可以擴展外部設備,例如條碼掃描槍和微型打印機等。利用PDA的移動性和比較強的數據處理能力可對現場數據進行實時的采集和整理。將采集的現場數據上傳到數據采集服務器、生產追蹤服務器和生產調度服務器。

如圖1所示的系統硬件平臺主要由廠級數據中心的服務器、無線路由器和PDA數據采集器構成,車間中根據生產工藝工序配置的多個PDA數據采集器,PDA上的掃描槍可以實時的采集現場數據,PDA的上的處理程序將采集的數據進行處理,然后通過多層無線路由器AP上傳到廠級數據中心服務器,每個PDA都有自己獨立的IP地址,服務器通過收發消息對上傳的數據進行管理和向PDA發出指令。整個系統包括服務器程序和客戶端程序,通過MSMQ技術實現PDA與數據服務器的數據通信。

 

系統軟件配置

服務端配置:服務端是Windows Server2003操作系統,服務器程序檢查客戶端在線狀態,將在線客戶端信息(包括:客戶端名稱、客戶段IP地址)共享給每個客戶端。

客戶端:需要設置服務器端IP地址,本地客戶端名稱。設置正確服務端IP地址、本地客戶端名稱后。通過服務端獲取在線客戶端信息,指定客戶端后可以接收新消息和發送消息。

MSMQ技術在Windows Mobile中的應用

在PDA上Windows Mobile操作系統中通過MSMQ技術實現數據通信,要使用MSMQ開發消息處理程序,必須在服務器主機和客戶端上安裝消息隊列。消息處理程序主要是消息的發送和接收,如果要實現收發消息,必須引用一個隊列,引用的消息隊列分為公用隊列和專用隊列,這兩個隊列都存放用戶設計的消息。引用消息隊列后,就可以發送、接收和閱讀消息了。消息接收服務位于System.Messaging中,需要在工程中引用System.Messaging.dll文件。具體實現過程和代碼如下:

引用隊列

通過路徑、格式名和標簽三種方法引用隊列。例如:通過路徑引用消息隊列,路徑的形式為 machinenamequeuename。在實際應用中,指向隊列的路徑必須是唯一的。表1列出用于每種類型的隊列的路徑信息。

 

如果是發送到本機上,還可以使用“.”代表本機名稱。具體的引用方法可以在初始化消息隊列時設置,也可以通過設置消息隊列的Path屬性來實現。如果在初始化時引用消息隊列,那么消息隊列必須存在于系統中,否則會產生錯誤。在程序中可以實現消息隊列的創建。

在初始化時引用消息隊列的代碼如下:

MessageQueue Mq=new MessageQueue(“.\private$\mq”);

通過Path屬性引用消息隊列的代碼:

MessageQueue Mq=new

MessageQueue();

Mq.Path=”.\private$\mq”;

如果消息隊列不存在,可以使用 Create方法可在計算機上創建隊列,實現代碼如下:

System.Messaging.MessageQueue.

Create(@".private$mq");

發送消息

應用程序引用消息隊列后,就可以進行發送和接收消息操作。發送的消息可以分為簡單消息和復雜消息,簡單消息類型就是常用的數據類型,例如整型、字符串等數據;復雜消息的數據類型通常對應于系統中的復雜數據類型,例如結構體和類對象等。

簡單消息的發送示例如下:

Mq.Send(1000); //發送整型數據

1000

Mq.Send(“This is a test

message!”); //發送字符串

復雜消息的發送和簡單消息的發送大同小異,只是發送時,通常不是直接給出發送的消息內容,而是代表發送消息內容的變量。下面的代碼分別通過消息變量和復雜數據類型變量發送一條復雜消息。

下面的代碼中發送的消息由消息變量表示:

Message Msg;

Msg=new Message(“A Complex

Message!”);

Msg.Label=”This is the label”;

Msg.Priority=MessagePriority.High; Mq.Send(Msg);

下面的代碼中發送的消息由復雜數據類型變量表示,Customer為自定義的一個類:

Customer customer = new

Customer();

customer.LastName = "Copernicus";

customer.FirstName = "Nicolaus";

Mq.Send(customer);

接收消息

接收消息相比發送消息要復雜一些。接收消息有兩種方式:通過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();

結語

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

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          麻豆精品国产91久久久久久| 国产精品九九| 久久久综合香蕉尹人综合网| 欧美国产视频日韩| 久久精品国产欧美亚洲人人爽| 日韩午夜在线观看视频| 欧美日韩综合网| 亚洲欧美日韩中文在线制服| 欧美综合77777色婷婷| 午夜精品久久久久久久99黑人| 久久亚洲色图| 国产视频欧美视频| 欧美国产视频在线观看| 久久精品观看| 欧美乱大交xxxxx| 久久午夜色播影院免费高清| 一区二区三区av| 在线天堂一区av电影| 国产女主播在线一区二区| 国产精品视频不卡| 玖玖国产精品视频| 在线日本高清免费不卡| 亚洲精选国产| 亚洲视频精品| 欧美激情第五页| 一色屋精品视频在线看| 欧美激情乱人伦| 亚洲激情一区二区三区| 久久一二三四| 亚洲午夜未删减在线观看| 国产精品爽爽ⅴa在线观看| 伊人久久综合97精品| 欧美色精品天天在线观看视频| 欧美精品一区二区三区蜜桃| 老鸭窝亚洲一区二区三区| 欧美日韩国内| 91久久夜色精品国产网站| 欧美深夜福利| 国产色婷婷国产综合在线理论片a| 在线 亚洲欧美在线综合一区| 亚洲精品中文字幕在线观看| 午夜视频在线观看一区二区三区| 免费看黄裸体一级大秀欧美| 99精品国产热久久91蜜凸| 国产精品亚洲视频| 国产麻豆成人精品| 国产一区二区三区的电影| 欧美日韩国产精品一卡| 久久精品国产精品| 亚洲午夜精品久久久久久浪潮| 久久九九有精品国产23| 欧美成人性网| 欧美一区高清| 亚洲精品国偷自产在线99热| 欧美高潮视频| 欧美一区二区免费观在线| 欧美日韩亚洲一区二区三区四区| 亚洲精品你懂的| 欧美视频一区二区三区…| 亚洲精品人人| 99国产一区二区三精品乱码| 国产婷婷一区二区| 亚洲国产一二三| 亚洲国产婷婷综合在线精品| 欧美大片一区| 午夜精彩视频在线观看不卡| 欧美亚洲视频| 在线免费一区三区| 欧美日韩精品二区第二页| 欧美日韩精品福利| 欧美日韩一区二区在线观看视频| 亚洲精品网站在线播放gif| 亚洲一区三区视频在线观看| 在线一区二区三区做爰视频网站| 国产女人水真多18毛片18精品视频| 亚洲免费高清| 一本色道88久久加勒比精品| 久久gogo国模裸体人体| 中文精品99久久国产香蕉| 亚洲一区日韩在线| 亚洲视频第一页| 99精品免费视频| 欧美日韩一区二区国产| 亚洲欧美综合国产精品一区| 久久久国产一区二区三区| 136国产福利精品导航网址| 国产精品看片你懂得| 黄色av成人| 蜜桃久久av一区| 欧美一区二区啪啪| 午夜精品久久久久久99热| 欧美亚洲在线播放| 国产精品高清网站| 国产精品久久久久久久久借妻| 亚洲欧美激情在线视频| 国产一区二区在线观看免费播放| 亚洲免费视频观看| 另类综合日韩欧美亚洲| 久久国产一区二区三区| 欧美在线日韩| 性色一区二区三区| 亚洲日本成人在线观看| 国色天香一区二区| 欧美日韩不卡合集视频| 欧美日韩第一区日日骚| 欧美日韩专区在线| 欧美+亚洲+精品+三区| 国产综合色产在线精品| 狠久久av成人天堂| 国产精品久久中文| 久久精品国产69国产精品亚洲| 亚洲国产激情| 久久综合色一综合色88| 国产精品久久久一区二区三区| 亚洲一区3d动漫同人无遮挡| 国产精品乱人伦一区二区| 欧美日韩精品一区| 免费视频一区二区三区在线观看| 欧美夜福利tv在线| 亚洲高清一二三区| 美女黄毛**国产精品啪啪| 国产精品有限公司| 国产综合欧美在线看| 亚洲三级色网| 国产精品久久久久9999吃药| 一级日韩一区在线观看| 性做久久久久久免费观看欧美| 亚洲精品视频在线播放| 久久理论片午夜琪琪电影网| 国产精品看片你懂得| 亚洲高清色综合| 亚洲丶国产丶欧美一区二区三区| 海角社区69精品视频| 欧美系列电影免费观看| 欧美午夜无遮挡| 合欧美一区二区三区| 国产区欧美区日韩区| 国产精品一区二区久久久久| 国内揄拍国内精品久久| 日韩视频免费观看高清在线视频| 国产精品一区在线播放| 国产一区二区三区免费在线观看| 日韩视频第一页| 欧美二区在线观看| 亚洲国产精品999| 亚洲二区在线观看| 亚洲欧美日本视频在线观看| 久久网站热最新地址| 国产精品揄拍500视频| 亚洲女同精品视频| 亚洲一区在线免费| 亚洲国产日韩综合一区| 欧美在线亚洲综合一区| 精品成人一区二区三区| 欧美日韩国产va另类| 欧美国产综合视频| 在线亚洲+欧美+日本专区| 正在播放欧美视频| 欧美一级午夜免费电影| 亚洲制服丝袜在线| 久久久五月天| 久久综合九色综合欧美狠狠| 久久精选视频| 欧美日韩成人在线播放| 在线免费一区三区| 亚洲欧美在线一区| 一区视频在线看| 欧美一区2区视频在线观看| 欧美h视频在线| 欧美h视频在线| 91久久精品美女高潮| 在线视频国内自拍亚洲视频| 一区二区三区四区五区视频| 欧美在线欧美在线| 欧美—级a级欧美特级ar全黄| 欧美一二三区精品| 久久se精品一区二区| 亚洲精品免费一区二区三区| 伊人久久男人天堂| 欧美精品日韩综合在线| 一本色道久久精品| 99国产精品视频免费观看| 影音先锋日韩精品| 夜夜嗨av一区二区三区网页| 麻豆精品在线播放| 亚洲第一中文字幕在线观看| 国产精品免费aⅴ片在线观看| 亚洲第一精品久久忘忧草社区| 久久精品一二三区| 欧美成人r级一区二区三区| 最近看过的日韩成人| 国产综合色一区二区三区| 亚洲国产第一| 亚洲电影免费观看高清完整版在线| 欧美国产91| 国产精品jizz在线观看美国| 久久这里只精品最新地址| 亚洲图片自拍偷拍| 国户精品久久久久久久久久久不卡| 欧美在线观看一区二区| …久久精品99久久香蕉国产| 亚洲久久在线| 在线看片欧美| 日韩视频在线你懂得| 免费试看一区| 亚洲激情网站免费观看| 欧美三区免费完整视频在线观看| 久久亚洲影院| 午夜精品影院在线观看| 欧美制服丝袜| 在线欧美三区| 欧美国产精品中文字幕| 久久久国产精品一区二区中文| 久久国产精品一区二区三区四区| 欧美—级在线免费片| 一本色道久久综合狠狠躁篇怎么玩| 国产精品一区一区三区| 日韩亚洲欧美一区二区三区| 欧美成人精品三级在线观看| 欧美日韩视频一区二区三区| 伊人久久大香线蕉综合热线| 老司机一区二区| 激情国产一区二区| 亚洲欧美激情视频| 性做久久久久久免费观看欧美| 在线电影一区| 亚洲欧美日韩国产成人精品影院| 久久综合色8888| 国产精品视频99| 欧美午夜片在线观看| 美女视频一区免费观看| 亚洲精品乱码| 亚洲日本一区二区| 日韩一级免费观看| 亚洲国产日韩在线一区模特| 一区二区在线免费观看| 欧美69wwwcom| 国产精品日韩高清| 亚洲国产成人在线视频| 欧美激情综合五月色丁香| 欧美视频一区在线| 日韩一二三在线视频播| 欧美国产在线电影| 国产综合久久久久久鬼色| 国产日韩欧美自拍| 久久成人精品无人区| 国产精品夜夜夜一区二区三区尤| 国产毛片精品视频| 亚洲欧美日韩精品久久| 国产精品视频九色porn| 国内欧美视频一区二区| 久久国产视频网站| 韩国成人理伦片免费播放| 中文在线资源观看网站视频免费不卡| 一本色道久久加勒比精品| 欧美日韩一区三区四区| 男人的天堂亚洲| 欧美一区二区免费视频| 欧美日韩免费一区二区三区| 欧美国产极速在线| 欧美国产日本| 蜜桃av久久久亚洲精品| 99亚洲伊人久久精品影院红桃| 亚洲第一区在线观看| 亚洲欧美日韩在线高清直播| 中文国产亚洲喷潮| 久久久综合激的五月天| 欧美亚洲一区二区在线观看| 国产一区成人| 国产毛片久久| 999在线观看精品免费不卡网站| 国产亚洲欧美日韩精品| 亚洲国产专区校园欧美| 亚洲精品国产精品久久清纯直播| 欧美日韩免费观看一区| 国产精品久久久久久av下载红粉| 国产九色精品成人porny| 亚洲在线观看视频网站| 欧美aa在线视频| 国产亚洲精品久久久久婷婷瑜伽| 亚洲国产成人精品女人久久久| 欧美在线视频不卡| 欧美在线电影| 亚洲免费在线视频| 国产精品视频一二| 欧美夫妇交换俱乐部在线观看| 国产精品一区二区男女羞羞无遮挡| 欧美3dxxxxhd| 国产欧美日韩高清| 久久中文久久字幕| 久久精品国产亚洲一区二区| 欧美日韩中文字幕综合视频| 樱桃国产成人精品视频| 玖玖在线精品| 国产精品视频99| 亚洲永久字幕| 国产欧美亚洲精品| 香蕉成人久久| 欧美激情性爽国产精品17p| 国产亚洲精品一区二555| 美国三级日本三级久久99| 日韩一级免费| 亚洲欧美国产制服动漫| 国产亚洲精品高潮| 亚洲一区日本| 欧美美女操人视频| 国产亚洲欧美日韩一区二区| 亚洲精华国产欧美| 欧美日韩国产成人在线免费| 欧美日韩免费区域视频在线观看| 欧美日韩在线免费| 欧美色欧美亚洲另类二区| 亚洲男女毛片无遮挡| 国产精品美女| 久久婷婷国产麻豆91天堂| 国产亚洲精品成人av久久ww| 狠狠色综合一区二区| 激情视频一区二区三区| 欧美日韩精品福利| 国产精品久久国产三级国电话系列| 99视频国产精品免费观看| 国产精品不卡在线| 国产日韩欧美黄色| 国产精品卡一卡二卡三| 国产人成一区二区三区影院| 欧美国产日韩精品免费观看| 国产精品欧美精品| 欧美综合77777色婷婷|