python - python中的socket.recv(255)卡在等待数据上

标签 python sockets bluetooth

这里是新手问题,

我正在尝试破解一个现有的Python程序来搜索蓝牙信号

如果周围有蓝牙发射器,一切正常,

但如果周围没有蓝牙信号,程序就会停留在那里。

我发现它卡在这条线上

    pkt = sock.recv(255)

我天真地猜测这只是坐在那里等待数据,我希望它在 10 秒后给我一个错误或超时。

我该怎么做?我的想法正确吗?

谢谢

最佳答案

调用settimeout恢复前。如果时间太长,就会引发错误。

sock.settimeout(10)
try:
    pkt = sock.recv(255)
except socket.error:
    print "connection timed out!"
    return

关于python - python中的socket.recv(255)卡在等待数据上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27320855/

相关文章:

python - def方法(参数=无)是什么意思?

java - 如何终止由于Socket.accept()而被阻塞太长时间的线程?

Android 蓝牙低功耗状态 = 59

android - 通过蓝牙打印机 Android 打印 Pdf 文件

multithreading - 套接字Winsock异步阻止同时读取写入

ios - ESTBeaconConnection 使 Estimote 信标无法被发现

python - 如何在 pandas 中使用 count、groupby 和 max?

python - Cython:模块拆分后无法将指针转换为 Python 对象

python - 使用 python/c 扩展收到错误答案

c++ - 编译器优化创建系统调用?