本程序原是另一个大神,冬木远景
参考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的代码。这样就可以编译啦。