同时监控多个lo事件,当哪个io事件准备就绪就执行哪个io事件。以此形成可以同时处理多个io的行为,避免一个io阻塞造成其他io均无法执行,提高io执行效率
具体方法
select: windos linux unix
poll linux unix
epoll linux
from select import select
from socket import *
s = socket()
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind(('0.0.0.0',9999))
s.listen(3)
f = open('log.txt','r')
print('监控io')
rs,ws,xs = select([s],[],[])
print('rlist:',rs)
print('wlist',ws)
print('xlist',xs)
select 有三个列表分别代表要监听的读io事件,写io事件,异常io事件,这里的读指的是需要等待的io程序无法自行决定,写则是自己可以决定的比如读写文件,它还有第三个参数timeout当监听到一定时间就会结束
使用套接字连接
from socket import *
# 创建tcp套接字
sockfd = socket() # 默认参数-->tcp套接字
# 连接服务端程序
server_addr = ('127.0.0.1',9999)
sockfd.connect(server_addr)
监听到连接的io事件