IO多路复用
Select IO 多路复用示例
import socket, select
s1 = socket.socket()
s1.bind(("127.0.0.1",8001))
s1.listen()
s2 = socket.socket()
s2.bind(("127.0.0.1",8002))
s2.listen()
s_list = [s1, s2]
while True:
r_list, w_list, e_list = select.select(s_list,[],s_list, 1)
for sk in r_list:
conn, address = sk.accept()
conn.sendall(bytes("ok",encoding="utf-8"))
conn.close()
#如果有这一步的话,指的是谁出错,就将其从list里移除
for sk in e_list:
s_list.remove(sk)Last updated