-
1 # 架構宅話
-
2 # 暗黑程式設計師
socket,即套接字,是網路中的應用程式之間雙向通訊的端點。
介紹舉個形象的例子,我們每個人手中的智慧手機,就是一個socket,這個socket攜帶了手機號碼,我們可以輸入別人的手機號碼,進行撥號通訊,彼此進行語音聊天,也可以傳送簡訊聊天。
可以撥打電話互相聊天,這個叫TCP協議。
可以傳送簡訊單向聊天,這個叫UDP協議。
TCP和UDP協議的區別是,TCP需要你來我往的互相保持通訊,UDP是單向的通訊。
套接字的分類以TCP為代表的流套接字SOCK_STREAM,該型別的套接字能實現無差錯、無重複送,並按順序接收。以UDP為代表的資料報套接字SOCK_DGRAM,該型別的套接字無需保持連線,無法保證資料能被對方確切的收到,不可靠的,會出現資料丟失或重複的。除了上面2個套接字,還有一種是原始套接字SOCK_RAW,其他協議的收發使用該套接字。工作流程客戶端socket向服務端socket傳送連線請求,服務端收到後會響應客戶端,告知客戶端服務端已獲取到你的請求,客戶端再把資料部分和資料的協議頭髮送給
示例程式碼總結學習socket,可以透過影片學習,現在網上比較多的這類影片,不妨去看一看。另外,要多動手,自己寫一寫,程式碼要多寫才能學得更快。
-
3 # 豆豆牽著蝸牛在散步
工作中經常用到工業機器人中的socket通訊,所以就socket在工業機器人中的使用情況做一下解讀。
什麼是socket?
socket就是套接字,是和不同裝置進行雙向通行的虛擬地址。不同的裝置進行通訊時,需要裝置唯一對應的套接字。套接字表面連線應用程式,底層連線通訊協議,是裝置之間進行網路通訊的介面,是上層應用程式和底層網路協議之間資料互動的介面。可以這麼理解,socket通訊是自定義的網路通訊方式,自定義通訊資料型別和資料長度,以及讀寫的時機。套接字表達方式是裝置的IP地址:埠號。使用socket通訊,兩個裝置一個做客戶端Client Socket,一個做伺服器 Server Socket。
工業機器人行業socket的應用
目前,主流工業機器人都整合socket通訊,需要底層通訊選項包的支援。機器人透過socket程式設計可以和支援TCP/IP協議的PLC、相機等裝置進行資料互動。成本低,通訊自由度高。
工業機器人如何進行socket程式設計?
工業機器人要進行socket通訊,首先要定義傳輸資料的型別和長度,一般使用字串的形式。還要建立套接字(例如socket1),有幾個裝置就要建立幾個套接字。然後先進行一次套接字的關閉釋放,能夠保證通訊的正確性。多個裝置通訊時,同時只能執行一個裝置的資料互動。根據通訊裝置的IP地址和埠號建立套接字連線,判斷通訊狀態。使用專用的socket讀指令和socket寫指令進行資料的互動。資料讀寫完成後,最後關閉當前套接字,釋放socket連線,防止通訊衝突。資料讀寫時,有時還有進行資料的解析,把字串資料轉換成字元或者數值應用到程式中。
socket通訊的優缺點
優點:通訊自由,只要支援TCP/IP協議,就可以使用socket進行通訊。成本低,工業機器人廠商一般都開放socket通訊。
缺點:程式設計量大,需要熟練掌握socket相關指令的使用方法。通訊採用問答式,通訊協議比較複雜,通訊效率低。
以上總結了實際工作中使用socket通訊的個人經驗分享,可能無法完全回答您的問題。至於書籍,自己也沒看過相關的書籍,都是檢視機器人通訊手冊來完成工業機器人socket通訊程式設計的。希望其它大神可以推薦給你。
回覆列表
說起來就是網路程式設計,服務端監聽埠,客戶端向服務端埠發起請求,建立連線,然後互動!
nginx tomcat底層都涉及到socket程式設計,nginx監聽了80或443等埠,tomcat監聽8080埠等等!