Python recv丢弃蓝牙数据?

2024-10-02 16:34:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个运行在IOT设备上的python应用程序,该设备通过蓝牙(pybluez)连接接收数据。我正在用安卓手机测试物联网设备。大多数协议都是小的聊天包,但是,有一个操作需要一次发送大量数据,在我当前的测试中大约是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 ...

有人经历过吗?我想我从来没有见过这种情况,我的小型聊天通信在一个循环中运行,这是否意味着这可能是某种缓冲区溢出?是否有处理此问题的最佳做法


Tags: the数据代码应用程序协议data情况读取数据