非阻塞IO

通过修改IO事件的属性,使其变为非阻塞状态。(让一些条件阻塞函数不在阻塞)
  *非阻塞IO往往和循环判断一起使用

s.setblocking(False)
  将套接字设置为非阻塞状态

from socket import *
from time import sleep,ctime

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

#将套接字设置为非阻塞
s.setblocking(False)

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