Python中的套接字程序中的超时功能



我以这种方式使用settimeout()功能:

import socket
s.connect((host,port))
s.settimeout(1)   #a
try:
    while True:
        s.settimeout(0.030)    #b
        try:
            code
        except socket.timeout:
            code
            break
except socket.timeout:
    print('over')

我的代码处于此形式。现在,A在A不起作用,但是B处的超时是因为bute in b b b in执行

的代码

我的项目是运行将近1秒的进一步程序,但它正在连续循环。我知道这是因为true,但是循环中的代码应连续运行1秒

如果有人有其他方法或技巧,欢迎

如果我正确理解您:

import socket
s.connect((host,port))
s.settimeout(1)
#a
try:
  while True:
      s.settimeout(0.030) 
      #b
      try:
        # code...
      except socket.timeout:
          # code... 
          break
except socket.timeout:
  print('over')

您正在尝试将循环内部每个请求的时间限制为0.03秒,将完整的过程限制为1秒。如果是这样,您将无法通过设置超时套接字来限制整个循环的运行时间,因为它是指单个套接字操作。

您可以考虑使用此解决方案。

相关内容

  • 没有找到相关文章

最新更新