从pyhand获取文件描述符时出现问题

2024-09-27 23:27:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用twisted回调和TUN接口,这个接口是我在Windows中用Python打开的。我正在使用win32获取PyHandle文件.CreateFile(). 为了使用Twisted,我(想我)必须使用一个文件描述符。所以我试着通过这样做来转换为fd:

self.tunfd = msvcrt.open_osfhandle(self.tun_handle, 0)

使用零作为第二个参数是我在web上看到的许多故障排除示例中所显示的,并且尝试使用适用的标志并没有解决这个问题。在每种情况下,我都会得到以下错误:

^{pr2}$

为什么这行不通?有没有更简单的方法来使用Twisted with PyHandle?在


Tags: 文件selfwindowstwistedopen描述符win32fd
1条回答
网友
1楼 · 发布于 2024-09-27 23:27:09

Windows上的文件描述符是一个技巧。我不知道是否有某种方法可以为Windows上的TUN设备获取一个文件描述符,但是即使你设法得到了一个文件描述符,Twisted也无法使用。在Windows上,Twisted仅限于与表示套接字的文件描述符交互。这与接受文件描述符的windowsapi的工作方式有关。在

你有两个选择。您可以使用^{}监视一个窗口Event,然后在tun_handle发生有趣的事情时使用其他一些Windows API来触发事件。或者,您可以使用^{}直接监视句柄中的有趣活动(不幸的是,IOCPReactorAPI并没有得到很好的记录,但我认为registerHandle可能是最主要的)。在

相关问题 更多 >

    热门问题