超时检测

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

 

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()

 

posted on 2018-09-07 22:32  zengsf  阅读(143)  评论(0)    收藏  举报

导航