• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    物聯(lián)網應用中的跨平臺數(shù)據(jù)通信

    2019-09-19 11:34:52顧家銘
    電腦知識與技術 2019年20期
    關鍵詞:物聯(lián)網

    摘要:5G網絡的到來,將開啟“萬物互聯(lián)”時代。物聯(lián)網技術就是使各種設備都能接入網絡,需要實現(xiàn)跨平臺的數(shù)據(jù)通信。為了解決這一問題,模擬辦公樓安防監(jiān)測系統(tǒng),設計了一個桌面端和移動端通信的方案。該方案充分利用Socket技術優(yōu)勢,采用UDP協(xié)議,實現(xiàn)了C#平臺和Android平臺的數(shù)據(jù)通信。移動端通過ADAM4150采集火焰、煙霧、紅外對射的信號狀態(tài),并將采集的信號狀態(tài)發(fā)送給桌面端。桌面端編程語言是C#,采用WPF框架實現(xiàn)表現(xiàn)層開發(fā),接收移動端通過網絡發(fā)送的信號狀態(tài)。

    關鍵詞: 物聯(lián)網;Socket編程;C#;Android

    中圖分類號:TP311? ? ? ? 文獻標識碼:A

    文章編號:1009-3044(2019)20-0015-03

    開放科學(資源服務)標識碼(OSID):

    近幾年來,隨著物聯(lián)網技術的發(fā)展,智能醫(yī)療、智能交通、智能家居、智能物流以及智慧城市的研究和應用非常廣泛,物聯(lián)網正在悄然改變我們的生活,使人們的生活更加便捷和舒適[1]。5G網絡的到來,將開啟“萬物互聯(lián)”時代。物聯(lián)網技術就是使各種設備都能接入網絡,實現(xiàn)跨平臺的數(shù)據(jù)通信。一般的物聯(lián)網應用程序都支持電腦、手機和平板等多種設備使用,需要實現(xiàn)桌面端和移動端的跨平臺通信。

    目前,C#已經成為開發(fā)物聯(lián)網桌面端的主流語言,而Android成為開發(fā)物聯(lián)網移動端的主流語言。標準的Socket通信技術可以實現(xiàn)任何平臺和任何進程之間的通信,在PC端和Android手機端通過有線或無線的連接情況下,實現(xiàn)兩端設備的Socket連通[2]。

    1 實現(xiàn)通信的關鍵技術

    1.1 Socket通信原理

    Socket的英文原義是“孔”或“插座”,也被稱作“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄,可以實現(xiàn)不同系統(tǒng)之間的通信[3]。在TCP/IP網絡中,應用程序通過“套接字”發(fā)出請求或應答請求,“套接字”采用客戶端/服務器端(Client/Server, C/S)模式?!疤捉幼帧敝g的連接過程分為三個步驟:1)服務器監(jiān)聽:服務器實時監(jiān)聽網絡狀態(tài),處于等待連接的狀態(tài);2)客戶端請求:由客戶端“套接字”提出連接請求,連接的是服務器端的“套接字”;3)連接確認:當服務器端“套接字”監(jiān)聽到客戶端“套接字”的連接請求后,它就激活一個新進程處理客戶端請求,兩端連接上后可進行數(shù)據(jù)傳輸?shù)牟僮?。而服務器“套接字”繼續(xù)處于監(jiān)聽狀態(tài),接受其他客戶端“套接字”的連接請求。

    Socket有兩種操作方式:面向連接和無連接的。面向連接的操作使用TCP協(xié)議,這種方式在正式發(fā)送數(shù)據(jù)前,必須和對方建立可靠的連接。一個TCP連接必須經過三次握手才能建立起來,TCP對應的是可靠性要求高的應用;而無連接的操作方式使用UDP協(xié)議,這種操作在正式通信前不必與對方先建立連接,不管對方狀態(tài)就直接發(fā)送數(shù)據(jù)。UDP對應的是可靠性要求低、通信效率高的應用。

    1.2 C#中的Socket編程

    C#語言簡潔的語法和強大的功能使套接字編程變得十分簡單,在命名空間System.Net.Sockets中,Socket類提供了對套接字的支持[4]。應用程序通過TcpClient類和TcpListener類使用傳輸控制協(xié)議(TCP),通過UdpClient使用用戶數(shù)據(jù)文報協(xié)議(UDP),而TcpClient、TcpListener和UdpClient這些協(xié)議類都是建立在Socket類的基礎之上,負責數(shù)據(jù)傳輸?shù)募毠?jié)工作。

    網絡通訊中的所有數(shù)據(jù)都是以字節(jié)的形式進行傳輸?shù)?,因此必須把?shù)據(jù)轉化為byte[]的類型。命名空間System.Text中的Encoding類,可以實現(xiàn)字符串和字節(jié)數(shù)組的相互轉換,而System命名空間中的BitConverter類,則實現(xiàn)基礎數(shù)據(jù)類型與字節(jié)數(shù)組的相互轉換。

    1.3 Android中的Socket編程

    Android編程使用的是Java語言,因此Java Socket網絡編程在Android平臺都是適用的,但Android平臺也有其特殊性之處。Socket編程通常采用客戶端/服務器端(Client/Server, C/S)模式,服務器必須有一個固定的IP地址,才能接收客戶端的請求。而手機的IP地址是由運營公司動態(tài)分配的,所以Android端通常運行的是客戶端程序[5]。

    Java在包java.net中提供所有與網絡通信相關的類。其中,InetAddress類封裝了IP地址,利用該類可以獲取IP地址和主機地址等信息。ServerSocket類表示服務器套接字,通過指定的端口監(jiān)聽請求,建立連接后進行數(shù)據(jù)交互。Socket類表示客戶端套接字,用于向服務器發(fā)出請求連接,連接建立后也可進行數(shù)據(jù)交互。

    2 系統(tǒng)設計

    2.1 總體設計

    模擬辦公樓安防監(jiān)測系統(tǒng),設計一個桌面端和Android移動端通信的模型。系統(tǒng)啟動后,桌面端接收移動終端通過網絡發(fā)送的火焰、煙霧、紅外對射的信號狀態(tài),并將各信號的狀態(tài)顯示在界面上,使用網絡攝像機實現(xiàn)視頻監(jiān)控和記錄功能。移動端使用 ADAM4150 數(shù)字量采集器采集火焰、煙霧、紅外對射信號并實現(xiàn)對報警燈和照明燈的控制,使用網絡攝像機獲取實時圖像。系統(tǒng)有線信號拓撲圖如圖2所示。

    系統(tǒng)采用UDP協(xié)議進行跨平臺通信。UDP就是用戶數(shù)據(jù)報協(xié)議,處于互聯(lián)網參考模型的第四層-傳輸層,它是一種無連接不可靠的信息傳輸。相比于TCP協(xié)議,UDP協(xié)議少了三次握手建立連接、維護連接和釋放連接等一系列過程,因此具有很小的資源消耗和處理速度快的優(yōu)點。

    2.2 C#桌面端設計

    桌面端的開發(fā)環(huán)境為Visual Studio 2012 和 SQL Server 2008R2,編程語言為C#,使用WPF框架實現(xiàn)表現(xiàn)層開發(fā)。WPF提供了統(tǒng)一的編程模型、語言和框架,真正做到了界面設計與開發(fā)工作的分離[6]。桌面端接收移動終端通過網絡發(fā)送的火焰、煙霧、紅外對射的信號狀態(tài),并將各信號的狀態(tài)顯示在界面上。樓宇安防系統(tǒng)主界面設計如圖3所示。

    桌面端應用程序,創(chuàng)建一個UdpClient對象,并將它綁定到端口號10000。創(chuàng)建一個線程,監(jiān)聽數(shù)據(jù)。在接收數(shù)據(jù)線程中,首先調用Receive()方法返回遠程移動端發(fā)送的 UDP 數(shù)據(jù)報,然后解析UDP數(shù)據(jù)報,最后調用Dispatcher.Invoke()方法更新界面上的UI元素,如紅外對射、火焰、煙霧的狀態(tài)。以下是桌面端的關鍵代碼。

    2.3 Android移動端設計

    Android移動端的開發(fā)環(huán)境為Eclipse 4.2.2 和 Android SDK。移動端應用程序,使用 ADAM4150 數(shù)字量采集器實時采集火焰、煙霧、紅外對射信號狀態(tài),并顯示在界面上,同時將采集到的信號狀態(tài)發(fā)送給桌面端。當檢測到火焰或煙霧時,亮起報警燈。如果啟用了“入侵報警”,當檢測到紅外對射信號,亮起報警燈。樓宇安防監(jiān)測系統(tǒng)移動端界面設計如圖4所示。

    移動端應用程序,首先創(chuàng)建一個DatagramSocket實例對象建立Socket服務,調用connect()指定要發(fā)送的遠端IP地址和端口號;然后創(chuàng)建一個DatagramPacket實例對象,將要發(fā)送的紅外對射、火焰、煙霧的信號狀態(tài)打包到DatagramPacket中去;調用DatagramSocket中的Send()方法發(fā)送數(shù)據(jù);最后關閉Socket服務。

    3 結語

    為了解決物聯(lián)網應用系統(tǒng)中的跨平臺通信的問題,模擬辦公樓安防監(jiān)測系統(tǒng),設計了一個桌面端和Android移動端通信的模型,利用UDP協(xié)議,使用Socket接口實現(xiàn)兩端設備的連通。桌面端利用C#語言編寫應用程序,并且使用WPF框架實現(xiàn)表現(xiàn)層開發(fā),可以接收移動端通過網絡發(fā)送的火焰、煙霧、紅外對射的信號狀態(tài),并且將狀態(tài)顯示到界面上。而移動端通過ADAM4150采集火焰、煙霧、紅外對射的信號狀態(tài),即顯示在界面上,又將信號狀態(tài)發(fā)送到桌面端。另外本設計還可以應用到物聯(lián)網的其它應用領域。

    參考文獻:

    [1] 王昊. 基于工控機平臺智能家居系統(tǒng)設計與實現(xiàn)[D].山東:山東大學,2016.

    [2] 何誠, 邵乾飛, 袁浩, 等.基于Socket實現(xiàn)Android(java)與C#的同步通信[J].無線互聯(lián)科技,2015(2):15-16.

    [3] 楊文珺, 王志杰. C#物聯(lián)網應有程序開發(fā)[M].北京:機械工業(yè)出版社,2017.

    [4] 張凌曉, 袁東鋒, 劉克成. Visual C# 2010程序設計[M].北京:中國鐵道出版社,2013.

    [5] 林志紅. Android Socket網絡編程體會[J].科學技術創(chuàng)新,2017(28):140-141.

    [6] 顧家銘. WPF在物聯(lián)網環(huán)境監(jiān)測系統(tǒng)中的應用[J].電腦知識與技術,2018,14(17):287-288.

    【通聯(lián)編輯:王力】

    猜你喜歡
    物聯(lián)網
    基于物聯(lián)網的煤礦智能倉儲與物流運輸管理系統(tǒng)設計與應用
    基于高職院校物聯(lián)網技術應用人才培養(yǎng)的思考分析
    基于LABVIEW的溫室管理系統(tǒng)的研究與設計
    論智能油田的發(fā)展趨勢及必要性
    中國或成“物聯(lián)網”領軍者
    安庆市| 嘉荫县| 涡阳县| 岳阳县| 浑源县| 田林县| 济源市| 眉山市| 宣化县| 罗源县| 扎赉特旗| 伊春市| 梓潼县| 乌拉特中旗| 黑山县| 上杭县| 敦煌市| 岳西县| 五河县| 新宾| 大姚县| 黄陵县| 海盐县| 历史| 五原县| 甘德县| 乌拉特中旗| 津南区| 南江县| 容城县| 江华| 天全县| 石棉县| 博爱县| 泗阳县| 娄底市| 万源市| 日喀则市| 措勤县| 崇左市| 同德县|