Windows 系统下使用 select 进行 IO 多路复用时,为什么不能监听文件对象?
oserror: [winerror 10038] 使用 select io 多路复用
在使用 select 监听 io 多路复用时,如果你在 windows 系统上尝试监听文件对象,可能会遇到如下错误:
OSError: [WinError 10038] 在一个非套接字上尝试了一个操作
这是因为在 windows 系统中,select 只能用于监听套接字,而无法用于监听文件。根据官方文档:
windows 上的文件对象不可接受,但套接字可接受。在 windows 上,底层的 select() 函数由 winsock 库提供,且不处理不源自 winsock 的文件描述符。
因此,在 windows 系统上使用 select 进行 io 多路复用时,需要确保监听的是套接字对象,而不是文件对象。
以上就是Windows 系统下使用 select 进行 IO 多路复用时,为什么不能监听文件对象?的详细内容,更多请关注硕下网其它相关文章!