我需要有关 python 中套接字的帮助。设备 (D) 通过以太网电缆直接连接到插入 Raspberry Pi 的 USB 转以太网适配器 (eth1)。ifconfig
运行sudo tcpdump -i eth1
显示 D 正在 IP 地址 169.254.129.33 下进行通信。当我在 Python 中运行以下代码时,我没有收到来自 D 的回复,尽管据说发送的消息会触发响应。
import socket
HOST = socket.gethostbyname(socket.gethostname())
PORT = 30444
D_IP = '169.254.129.33'
msg = 'Calling all IRC devices'
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
s.sendto(msg.encode(), (D_IP, PORT))
data, address = s.recvfrom(PORT)
s.close()
print(address, ' replied: ', data.decode())
似乎 Python 要么没有msg
通过适配器发送到 D,要么 D 的 IP 地址不是我认为的那个。
如何告诉 python 专门使用 USB-to-Ethernet 适配器进行 UDP 通信?当连接到 Pi 而不是路由器时,如何获得 D 的正确 IP 地址?
PS:希望,格式没问题,我的英语也不错。