Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MicroPython usockets未超时_Python_Multithreading_Sockets_Blocking_Micropython - Fatal编程技术网

MicroPython usockets未超时

MicroPython usockets未超时,python,multithreading,sockets,blocking,micropython,Python,Multithreading,Sockets,Blocking,Micropython,出于各种原因,我试图让我的带有MicroPython的ESP32设备轮询192.168.1.*:79的所有256个选项,以查找“主机”PC。在这样做时,ESP32尝试创建一个套接字并将其连接到每个可能的地址,即: while not connected: try: addr = generate_next_address() s = usocket.socket() s.connect(addr) except OSError: s.close()

出于各种原因,我试图让我的带有MicroPython的ESP32设备轮询192.168.1.*:79的所有256个选项,以查找“主机”PC。在这样做时,ESP32尝试创建一个套接字并将其连接到每个可能的地址,即:

while not connected:
  try:
    addr = generate_next_address()
    s = usocket.socket()
    s.connect(addr)
  except OSError:
    s.close()
    continue
  print("Found a connection!")
  connected = True
当尝试向拒绝
connect()
的设备发送连接时,会很快抛出异常并继续。然而,问题是当它开始遇到没有响应或不存在的设备时,它会等待很长一段时间才超时

现在,我已经尝试了使用
usocket.settimeout()
usocket.setblocking()
uselect.poll()
、和
time.delay()
的各种方法,但我无法获得任何更改超时时间的方法

通过将blocking设置为false,脚本立即尝试所有256个地址,然后中断while循环,不允许正确连接。打开阻塞会完全忽略我尝试的任何超时设置,持续15-20秒超时,而不是1秒

有什么我不明白的吗?有没有一个显而易见但我却错过了的解决方案