本程序原是另一個大神,冬木遠景
參考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