ROS入門(四) Python版連接TCP/IP


本程序原是另一個大神,冬木遠景

參考http://www.rosclub.cn/post-706.html文章寫得TCP/IP的讀寫。

這個程序主要是通過python程序的socket函數來建立連接,

socket函數的官方說明:https://docs.python.org/3/library/socket.html

socket的基本通訊,開啟流程如下:

 

那我們就先來創建一個socket服務端:

import socket

sk = socket.socket()
sk.bind(("127.0.0.1",8080))
sk.listen(5)

conn,address = sk.accept()
sk.sendall(bytes("Hello world",encoding="utf-8"))

這里是創建一個127.0.0.1:8080的服務端。

而sk.sendall(string[,flag])是將string中的數據發送到連接的套接字,但在返回之前會嘗試發送所有數據。成功返回None,失敗則拋出異常。

內部通過遞歸調用send,將所有內容發送出去。

 

那我們后面寫一個客戶端:

import socket

obj = socket.socket()
obj.connect(("127.0.0.1",8080))

ret = str(obj.recv(1024),encoding="utf-8")
print(ret)

這里是連接一個127.0.0.1:8080的客戶端,而obj.recv(1024)表示接受1024個字節的傳遞信息。

sk.recv(bufsize[,flag])接受套接字的數據。數據以字符串形式返回,bufsize指定最多可以接收的數量。flag提供有關消息的其他信息,通常可以忽略。

 

如果想要在ros平台使用的話。可以直接在里面夾雜着這段TCP/IP的代碼。這樣就可以編譯啦。

具體可以參考網站:https://www.cnblogs.com/aylin/p/5572104.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM