【问题标题】:Python3.4.4 Bluetooth pybluez sock.recvPython3.4.4 蓝牙 pybluez sock.recv
【发布时间】:2018-09-25 10:23:20
【问题描述】:

我正在使用 python 中的 pybluez lib 开发蓝牙服务器应用程序。我在 Windows 7 PC 上安装了 2 个版本的 python(python2.7.15 和 python 3.4.4),并且都已经安装了 pybluez 模块。 该程序在 python 2.7.15 中运行良好,但我在 python 3.4.4 中发现了不同的行为。 在python 2.7.15中,函数:

socket.recv[1024]

等到数据可用,如果收到数据则进入下一行。但是在 python 3.4.4 中,没有等待数据,因此程序继续执行下一行,即使还没有收到数据。 我应该怎么做才能使它与 python 2.7.15 中的行为相似?

感谢您的帮助。

【问题讨论】:

  • 两个版本之间可能存在差异。你检查过他们的文件吗?可能它们可能包含一些见解。无论如何,IMO 这个问题对于新贡献者的 SO 来说已经足够好了。希望熟悉的人能帮到你。
  • 是的,我确实阅读了文档,但是,我从客户端套接字收到的响应一遍又一遍地滚动,看起来就像在等待数据。我已经花了 2 天时间......

标签: python pybluez


【解决方案1】:

只需添加一行:

while True:
    data = client_sock.recv(1024)
    if len(data) == 0: break
    print("received [%s]" % data)

我测试过的只是python 3.7

【讨论】:

  • 嗨@DatenDenker,感谢您的回复。您的解决方案在逻辑上可以解决问题。但我已经完成了这个项目并继续使用 python2.7.15。对于迟到的回复,我真的很抱歉。我真的很感谢你的回答非常感谢:)
猜你喜欢
  • 1970-01-01
  • 2016-09-26
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 2011-12-08
  • 2019-09-26
  • 2015-06-08
  • 2021-03-12
相关资源
最近更新 更多