我在 python 中使用 UDP 广播将数据包从移动节点发送到固定节点。我想要的是在移动节点接近静态节点时提高数据速率,并在节点移开时降低数据速率,以便我可以将更多数据包传输到接收节点。
实际上,我正在为我的论文做一个实验,我想测量信号强度以及相对于静态节点的距离。因此,根据接收信号强度的值,我想调整广播速率的距离。
任何帮助和建议都会非常有帮助。
这是代码
from socket import *
import os
import time
# A dummy string that I want to send
a = os.urandom(1400)
s = socket(AF_INET, SOCK_DGRAM)
s.bind(('', 0))
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
# Send data along with the sequence number and current time
i=0
while 1:
if os.system("iwconfig wlan0 | awk '/Signal level/ {print $4}'|cut -c 7-9") >= -90: #-90 dbm is set as threshold
data = (str(i)+"###"+str(time.time())+"@@@"+ a.encode('hex'))[:1400] # only send 1400bytes of data
s.sendto(data, ('192.168.169.255', 5000))
i+=1
else sleep('<broadcast interval>') # sleep until the next broadcast interval
我很不确定如何调整广播速率,所以我没有它的代码。
先感谢您