Python 是否可以在不连接网络的情况下通过wifi发送UDP广播?

Python 是否可以在不连接网络的情况下通过wifi发送UDP广播?,python,sockets,udp,wifi,broadcast,Python,Sockets,Udp,Wifi,Broadcast,我正在尝试获取两个树莓PI之间的数据包的飞行时间,这两个PI被设置为访问点 现在,只要它们连接到同一个网络,我就可以在它们之间传输广播 我的想法是,我可以发送UDP广播,而无需将其连接到网络,类似于信标数据包和探测请求的发送方式 这是我的服务器代码,我使用wireshark在另一端接收数据包 import sys, time import socket, IN port = 22222 interface = "wlan0" broadcast = "255.255.255.255" s =

我正在尝试获取两个树莓PI之间的数据包的飞行时间,这两个PI被设置为访问点

现在,只要它们连接到同一个网络,我就可以在它们之间传输广播

我的想法是,我可以发送UDP广播,而无需将其连接到网络,类似于信标数据包和探测请求的发送方式

这是我的服务器代码,我使用wireshark在另一端接收数据包

import sys, time
import socket, IN

port = 22222
interface = "wlan0"
broadcast = "255.255.255.255"

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.setsockopt(socket.SOL_SOCKET, IN.SO_BINDTODEVICE, interface + "\0")

while 1:
    s.sendto("test data", (broadcast, port))
    time.sleep(2)

有人知道这是否可能吗?请注意正确的方向:)

当设备未连接到网络时,不可能发送/接收UDP/IP数据包。IP层要求连接链路层

信标数据包和探测请求不需要连接网络,但它们不是IP数据包(它们根本没有IP报头),因此无法通过AF_INET套接字构造和发送它们。wifi上的原始数据包可以通过原始套接字创建和发送。但是,如果您试图手动构造带有IP和UDP报头的数据包并将其发送到网络,没有人会响应它,因为发送方未连接到网络


python库支持构建原始802.11消息,如信标数据包,但如果节点未连接,您将永远不会发送有效的UDP/IP数据包。

Awesome,感谢您提供此信息。。这就是我一直在寻找的!