gpt4 book ai didi

python - 从 pyhandle 获取文件描述符时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:20 24 4
gpt4 key购买 nike

我想使用带有 TUN 接口(interface)的扭曲回调,该接口(interface)是我使用 Python 在 Windows 中打开的。我正在使用 win32file.CreateFile() 获取 PyHandle。为了使用 Twisted,我(认为我)必须使用文件描述符。所以我尝试通过这样做转换为 fd:

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

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

self.tunfd = msvcrt.open_osfhandle(self.tun_handle, 0)
IOError: [Errno 22] Invalid argument

为什么这行不通?有没有更简单的方法将 Twisted 与 PyHandle 一起使用?

最佳答案

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

你有两个选择。您可以使用IReactorWin32Events监视 Windows Event,然后在 tun_handle 发生有趣的情况时使用其他 Windows API 触发该事件。或者也许您可以使用IOCPReactor直接监视有趣事件的句柄(不幸的是,IOCPReactor API 没有详细记录 - 但我认为 registerHandle 可能是主要的事情)。

关于python - 从 pyhandle 获取文件描述符时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27337657/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com