機器人遙操作網絡通信平臺的設計
目前,機器人遙操作系統已成為機器人研究的一個熱點。在機器人遙操作的過程中,本地服務器與遠程客戶機之間的網絡通信問題是遙操作的關鍵環節。針對機器人遙操作的通信問題,本文設計了一種在Windows XP環境下,運用Socket實現的基于TCP/IP協議的網絡通信平臺。
本文引用地址:http://www.j9360.com/article/158120.htm1 Socket編程原理
1.1 Socket簡介
Socket(套接字)最初是加州大學伯克利分校為UNIX操作系統開發的網絡通信接口。后來Intel, Microsoft, Sun等網絡廠商將其移植到Windows中,形成了Windows Sockets規范,它定義了一套Windows環境下網絡編程的接口。利用Windows Socket開發的網絡通信程序的層次結構如圖1示。
圖1 Sockets編程的結構
根據傳輸數據類型的不同,Sockets可分為流式套接字(SOCK_STREAM)和數據報式套接字(SOCK_DGRAM)兩類。流式套接字提供面向連接、可靠的數據傳輸服務,數據無差錯、無重復的發送,且按發送順序接受。流式套接字實際上是基于TCP協議實現的。數據報式套接字提供無連接服務。數據報以獨立包形式發送,不提供無錯保證,數據可能丟失或重復,并且接受順序混亂。數據報套接字實際上是基于UDP協議實現的。
按照套接字在客戶機/服務器(Client/ Server)模式中的功能可將其分為兩類:
監聽套接字:該套接字位于服務器端,它的主要功能就是對特定的端口進行不斷的監聽,當檢測到有連接請求時,接受申請,并構造一個新的客戶端套接字,與連接申請方的客戶端套接字建立連接,從而為雙方的通信做好準備。
客戶端套接字:該套接字是用來進行網絡通信的實體。它位于客戶機和服務器上,服務器必須維持它為之服務的客戶一樣數量的這種套接字,形成一個以服務器為中心的星型結構。
基于Internet的機器人遙操作技術是現代網絡技術和機器人控制技術的結合,Internet使用網際分組交換協議TCP/IP作為通信規范,它包括 TCP, UDP和ICMP等協議。其中TCP協議是面向連接的協議,要求在數據交換以前必須與通信方建立一條連接、它具有分段和重組功能,能夠確保數據可靠、有序地傳輸。
TCP通信整個過程可以分成三個階段:連接建立、數據傳輸和拆除連接。
(1)連接建立階段:首先服務器中的監聽套接字對斷口進行偵聽,客戶端的套接字向服務器端的特定斷口提出連接申請。
(2)通信階段:這是整個過程的核心部分,任務就是負責數據的收發。
(3)拆除連接階段:在傳完數據之后,關閉套接字,釋放所分配的資源。
使用Soeket編寫TCP通信程序的主要步驟如下:
1) 構造 Soeket對象 ;
2) 使用該對象構造基本的Socket句柄。由于遙操作的數據通信要求可靠,準確,故采用TCP協議,套接字使用流式套接字;
3) 建立客戶機CSocket,調用Connect()建立與服務器套接字的連接.服務器調用Listen()監聽請求連接情況,并在收到客戶端請求后調用Accept()接收客戶端連接.
4) 構造CSocketFile對象,并使用CSocket對象與之關聯.
5) 構造CArchive對象 ,用于接受和發送數據。使用CArchive對象來進行客戶端與服務器端之間的Socket通信
6) 通信結束,關閉套接字,退出程序。
2 TCP網絡通信平臺程序的實現
本程序是為機器人遙操作的通信所搭建的一個網絡通信平臺,該平臺實現了本地服務器與遠程客戶機之間的數據網絡通信,系統結構圖如圖2所示。
圖2 遙操作系統結構圖
tcp/ip相關文章:tcp/ip是什么
評論