超时检测

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值