超时检测

将原本阻塞的函数设置一个最长阻塞时间。如果时间内条件达成则正常运行,如果仍然阻塞则视为超时,继续向下运行或产生异常

s.settimeout(sec)
设置套接字的超时时间

from socket import *
from time import sleep,ctime

s = socket()
s.bind(('127.0.0.1',8889))
s.listen(5)

#将套接字设置为超时时间
s.settimeout(5)

while True:
    print("Waiting for connect...")
    try:
        c,addr = s.accept()
    except timeout:   #报错就执行
        print(ctime())
        continue
    else:      #没有异常就执行
        print("Connect from",addr)
        while True:
            data = (c.recv(1024)).decode()
            print(data)
            if data == "*":
                break
            c.send(ctime().encode())
        c.close()
s.close()
原文地址:https://www.cnblogs.com/zengsf/p/9607418.html