最近在学习python,使用select 监听IO多路复用
如下代码,select 第二个参数监听的是文件的操作对象,为啥会报OSError: [WinError 10038] 在一个非套接字上尝试了一个操作? 我是在windows操作系统上运行的。老师的视频是在linux上面运行的,老师的代码运行正常。
from socket import *
from select import select
if __name__ == "__main__":
# 做几个IO用作监控
s = socket()
s.bind(('0.0.0.0', 8888))
s.listen(3)
# 文件操作对象
fd = open('log.txt', 'a+')
rs, ws, xs = select([s], [fd], [])
print("rs", rs)
print("ws", ws)
print("xs", xs)
Windows 上 select 不能用于文件。
select