gpt4 book ai didi

python - 如何使用 python 套接字库通过 adhoc wifi 进行广播

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:36 25 4
gpt4 key购买 nike

使用 Raspbian 和 Python 3.5 的夏季研究员。

我正在尝试使用 Raspberry Pi 3 B+ 通过套接字库通过共享的 ad-hoc 网络向其他 Pi(相同型号)广播消息。所有 Pi 都可以通过 ad hoc 网络对其他 Pi 执行 ping 操作。 Pi 还可以使用非常标准的客户端-服务器代码和 python socket library 进行通信。 。但是,当我尝试广播消息时,Pi 会给出“网络无法访问”消息(下面是完整错误)。

与我一起工作的一位研究生说,他为我提供的脚本希望服务器在基础设施模式下运行,并且需要配置临时模式才能使其正常工作。这得到了证实,因为我已经在桌面上成功运行了代码。我已经翻阅了手册页和 stackoverflow,但似乎无法找到有关如何为 ad-hoc 网络配置套接字广播的资源。有什么想法吗?感谢所有帮助。

广播功能:

def broadcast(self, frequency, port):

server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
server.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
server.settimeout(0.2)

while True:
server.sendto("GET OUT OF MY SWAMP", ('<broadcast>', port))
print("message sent...")
time.sleep(frequency)

错误消息:

Traceback (most recent call last):
File "myServer.py", line 31, in <module>
s.broadcast(float(frequency),int(port))
File "myServer.py", line 22, in broadcast
server.sendto("GET OUT OF MY SWAMP", ('<broadcast>', port))
socket.error: [Errno 101] Network is unreachable

最佳答案

我的网关是 0.0.0.0。您可以通过运行sudo route -n来查看您的网关。通过运行 sudo route add default gw 1​​92.168.0.112(Pi 的 IP 地址),我现在可以向连接到同一端口和网络的任何设备广播“摆脱我的沼泽”。添加命令后我的路由表如下所示:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.112 0.0.0.0 UG 0 0 0 wlan0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0

仍不确定如何向设备永久添加网关;网关似乎在重新启动后重置。请随时提出进一步的问题或澄清。

关于python - 如何使用 python 套接字库通过 adhoc wifi 进行广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56547918/

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