我正在向python udp监听器添加一个特性,该监听器向它接收到的设备发送回一个确认。在我的情况下,目前该设备是本地主机,但在未来将是一个MT4000遥测设备。
我正在使用recvfrom()函数从发送数据的设备接收数据和源地址。返回值是一对(string,address),其中string是表示接收到的数据的字符串,address是发送数据的套接字的地址。这个问题我们集中在地址上。地址正在返回
('127.0.0.1', 57121)
我理解这意味着源I.p是127.0.0.1ie localhost,57121表示数据已通过的端口。我的目标是分割这些数据以便发回确认。
我收到数据的代码是:
(s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM))
data, addr = s.recvfrom(1024)
到目前为止,我已经尝试了这种分割数据的方法:
sourceIp = addr[3:-9]
我的印象是这应该把绳子分开:
sourceIp = 127.0.0.1
但是它只输出这个:()
我现在的想法是,这实际上不是一个字符串,所以这种拆分的方法不起作用。有没有另一种分裂的方式,或转换的方法?谢谢。
('127.0.0.1', 57121)
是一个具有两个项的tuple不可变容器。要获取ip/端口,请执行以下操作:
或者您可以像使用
data, addr = ...
那样将其解压缩:或者,甚至是短路:
相关问题 更多 >
编程相关推荐