python的IO多路复用
一、
非阻塞状态:
import socket
from builtins import print, Exception
import time
sk = socket.socket()
address = ('127.0.0.1',8000)
sk.bind(address)
sk.listen(3)
#设置非阻塞IO(当没有接收到信息时会报异常)
sk.setblocking(False)
while 1:
try:
conn,add = sk.accept()
while 1:
data = conn.recv(1024)
print(data.decode('utf8'))
conn.sendall(data)
except Exception:
print('没有接收到消息')
time.sleep(3)
多路复用IO: