1

我需要有关 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:希望,格式没问题,我的英语也不错。

4

0 回答 0