Possible Duplicate:
Can select() be used with files in Python under Windows?
在UNIX上,我可以用Python将sys.stdin
传递给select.select
。我试图在Windows上这样做,但是在Python中,Windows上的select.select
不允许这样做。
为了更准确地描述我在做什么,请看https://github.com/eldarion/gondor-client/blob/ccbbf9d4b61ecbc2f66f510b993eb5fba0d81c09/gondor/run.py。
我正试图在Windows上实现unix_run_poll
函数。基本思想是,我有一个到服务器的socket连接,该服务器将流stdin、stdout、stderr连接到远程运行的进程,并且我从本地客户端与它进行交互,使其看起来好像本地客户端正在运行该进程。
win32_run_poll
是我尝试将其移植到Windows的尝试,它确实可以工作,有点像。这是一个有点不稳定的方法,我认为,是非常糟糕的。
有人对如何改进这一点有什么建议吗?对win32api的依赖性不太理想,但我可以保留它。
在Windows上,
select
只为套接字定义,不适用于任意文件句柄(Windows没有文件描述符的概念)。有关此问题的详细信息,请参见the msdn documentation,select模块的python documentation中也提到了此问题。如果您想对任意文件使用轮询,应该研究一些抽象的轮询套接字和文件句柄。这可能是在您的文章的注释中提到的扭曲反应器,也可能是到libuv的python绑定,或者您选择的其他事件库。
相关问题 更多 >
编程相关推荐