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

原文地址:https://www.cnblogs.com/TIANHUAHUA/p/8352068.html