即使在socket.setblocking(True)时,PyBluez socket.send()也不会阻塞

时间:2018-03-29 13:27:55

标签: python-3.x sockets bluetooth data-transfer pybluez

我正在使用PyBluez来尝试确定覆盆子pi和手机之间的蓝牙传输速度。

我想在socket.send(data)之前启动计时器并在数据发送后停止计时器,以查看发送数据所需的时间。但是,这不起作用,因为send()不是阻塞函数,并在完成执行之前继续执行下一行代码。 即:

start = time.time()
socket.send(data)
end = time.time()
time_taken_to_send = end - start

当我设置socket.setblocking(True)时,它似乎没有改变发送数据所需的时间。

我没有对手机端代码进行大量控制,因为这只是检查带宽的初步测试,我只是使用从Google Play商店下载的应用来实现蓝牙连接,所以即使socket.recv()是阻塞函数,我也无法计算接收数据所需的时间。

是否有人知道强制socket.send(data)成为阻止函数的方法,它只会在数据发送后转移到下一行代码?

0 个答案:

没有答案