一種基于LabVIEW的遠程控制實驗系統
2.3 TCP編程
鑒于TCP協議在絕大多數計算機上都有安裝,因此其使用也就更為普遍。但是其編程相對于其他的網絡編程更加復雜,用戶端需要考慮如何建立連接、分配端口號、進行地址轉換等。TCP(Transmission Control Protocol)傳輸控制協議是一個面向連接的協議,允許從一臺計算機發出的字節流無差錯地發往互聯網上的其他計算機。TCP是基于兩個網絡主機之間的點對點通信,從程序接收數據并將數據處理成字節流,再將字節組合成段,然后TCP對段編號和排序以便傳遞。在兩個TCP主機交換數據之前,必須先相互建立會話。TCP會話通過三向握手的過程進行初始化。這個過程使序號同步,并提供在兩個主機之間建立虛擬連接所需的控制信號。一旦初始的三向握手完成,在發送和接收主機之間將按順序發送和確認段。關閉連接之前,TCP使用類似的握手過程驗證兩個主機都完成發送和接收全部數據[6]。
TCP通信的兩端分別為服務器端和客戶端。如圖5和圖6所示,服務端首先對指定的端口(如9000)監聽,客戶端向服務端被監聽的端口發出請求,服務端接收到來自客戶端的請求后便建立客戶端與服務端的連接,然后就可以利用該連接進行通信了。
需要注意的是,在構建遠程實驗室時涉及到視頻流的傳輸,而TCP傳輸的僅僅是字節流,這就必須將視頻流進行解碼后按照字節流傳輸出去,再在客戶端通過程序編碼將視頻復現。
LabVIEW在構建遠程控制實驗系統時采用的上述各種網絡通信方式可以看出,各有優劣。針對遠程實驗室系統的視頻流傳輸,因其對傳輸延遲、傳輸速率等方面要求很高,故建議采用C/S模式即TCP協議或DataSocket協議,而其他的控制指令的發布完全可以采用Web Server。本系統最后實現了多個遠程控制實驗,調試結果表明用戶可以進行實驗,并且可以根據用戶名保存或者查詢歷史實驗記錄。實驗驗證系統在校園網內具有良好的實時性,能夠通過網絡為用戶提供實時的遠程實驗服務。
評論