<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 一種基于LabVIEW的遠(yuǎn)程控制實(shí)驗系統(tǒng)

          一種基于LabVIEW的遠(yuǎn)程控制實(shí)驗系統(tǒng)

          作者: 時間:2010-05-06 來源:網(wǎng)絡(luò) 收藏

            2.3 TCP編程

            鑒于TCP協(xié)議在絕大多數(shù)計算機(jī)上都有安裝,因此其使用也就更為普遍。但是其編程相對于其他的網(wǎng)絡(luò)編程更加復(fù)雜,用戶端需要考慮如何建立連接、分配端口號、進(jìn)行地址轉(zhuǎn)換等。TCP(Transmission Control Protocol)傳輸控制協(xié)議是一個面向連接的協(xié)議,允許從一臺計算機(jī)發(fā)出的字節(jié)流無差錯地發(fā)往互聯(lián)網(wǎng)上的其他計算機(jī)。TCP是基于兩個網(wǎng)絡(luò)主機(jī)之間的點(diǎn)對點(diǎn)通信,從程序接收數(shù)據(jù)并將數(shù)據(jù)處理成字節(jié)流,再將字節(jié)組合成段,然后TCP對段編號和排序以便傳遞。在兩個TCP主機(jī)交換數(shù)據(jù)之前,必須先相互建立會話。TCP會話通過三向握手的過程進(jìn)行初始化。這個過程使序號同步,并提供在兩個主機(jī)之間建立虛擬連接所需的控制信號。一旦初始的三向握手完成,在發(fā)送和接收主機(jī)之間將按順序發(fā)送和確認(rèn)段。關(guān)閉連接之前,TCP使用類似的握手過程驗證兩個主機(jī)都完成發(fā)送和接收全部數(shù)據(jù)[6]。

            TCP通信的兩端分別為服務(wù)器端和客戶端。如圖5和圖6所示,服務(wù)端首先對指定的端口(如9000)監(jiān)聽,客戶端向服務(wù)端被監(jiān)聽的端口發(fā)出請求,服務(wù)端接收到來自客戶端的請求后便建立客戶端與服務(wù)端的連接,然后就可以利用該連接進(jìn)行通信了。

            需要注意的是,在構(gòu)建時涉及到視頻流的傳輸,而TCP傳輸?shù)膬H僅是字節(jié)流,這就必須將視頻流進(jìn)行解碼后按照字節(jié)流傳輸出去,再在客戶端通過程序編碼將視頻復(fù)現(xiàn)。

            在構(gòu)建實(shí)驗系統(tǒng)時采用的上述各種網(wǎng)絡(luò)通信方式可以看出,各有優(yōu)劣。針對系統(tǒng)的視頻流傳輸,因其對傳輸延遲、傳輸速率等方面要求很高,故建議采用C/S模式即TCP協(xié)議或DataSocket協(xié)議,而其他的控制指令的發(fā)布完全可以采用Web Server。本系統(tǒng)最后實(shí)現(xiàn)了多個實(shí)驗,調(diào)試結(jié)果表明用戶可以進(jìn)行實(shí)驗,并且可以根據(jù)用戶名保存或者查詢歷史實(shí)驗記錄。實(shí)驗驗證系統(tǒng)在校園網(wǎng)內(nèi)具有良好的實(shí)時性,能夠通過網(wǎng)絡(luò)為用戶提供實(shí)時的遠(yuǎn)程實(shí)驗服務(wù)。



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();