Python recv丢弃蓝牙数据吗?

问题描述

我有一个运行在IOT设备上的python应用程序,该设备正在通过蓝牙(pybluez)连接接收数据。我正在用Android手机测试IOT设备。大部分协议都是小的闲聊数据包,但是,有一项操作需要一次发送大量数据,在我当前的测试中约为58K。

它有时可以工作,但经常挂起,等待从未出现的其他数据。我怀疑这意味着我要么溢出了一些有限大小的缓冲区并丢弃了数据,要么传输不可靠并且正在丢弃某些数据。

我用来读取数据的代码如下:

# Read the boundary off the socket
borderDataSize = borderPoints * 16
while len(data) < borderDataSize:
    newdata = client_sock.recv(4096)
    data += newdata

# ... logic to process the data ...

有人经历过吗?我认为我从未见过这种较小的健谈通信循环运行的情况,这是否意味着可能是某种缓冲区溢出?是否有解决此问题的最佳实践?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)