gpt4 book ai didi

Python套接字绑定(bind)0.0.0.0,检查传入消息

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:38 24 4
gpt4 key购买 nike

我有一个套接字:

self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.socket.bind(('0.0.0.0', 67)) # Listen on port 67

现在,套接字监听端口 67 上的所有接口(interface)。我等待一些消息:

message, address = self.socket.recvfrom(8192) # Blocking

收到消息后,我想在接收消息的同一接口(interface)上的端口 68 上发送广播响应。

问题是:是否有某种方法可以检查消息并确定哪个网络接口(interface)正在接收消息,如果是,我如何发送响应并提供该接口(interface)进行传输?

在 Windows、Python 3.4 上运行。

最佳答案

你不能。只有单独绑定(bind)到每个 IP 地址(这将为每个接口(interface)打开一个套接字),您才能区分接口(interface)。

编辑:正如 @jweyrich 在下面的评论中指出的那样,在 Windows 上有一个名为 IP_PKTINFO 的套接字选项(当然 Linux also )可以提供信息 - 如果它实现了

关于Python套接字绑定(bind)0.0.0.0,检查传入消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30457746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com