gpt4 book ai didi

c# - 在 C# 中打开到文件描述符的管道连接

转载 作者:太空狗 更新时间:2023-10-29 23:12:05 32 4
gpt4 key购买 nike

我有一个遗留应用程序,它从文件描述符 3 读取来自客户端程序的消息。这是一个外部应用程序,所以我无法更改它。客户端是用 C# 编写的。我们如何在 C# 中打开到特定文件描述符的连接?我们可以使用 AnonymousPipeClientStream() 之类的东西吗?但是我们如何指定要连接的文件描述符呢?

最佳答案

不幸的是,如果不先对 native Windows API 进行 P/调用,您将无法执行此操作。

首先,您需要使用 native P/Invoke 调用打开您的文件描述符。这是由 OpenFileById WINAPI 函数完成的。 Here's how to use it在 MSDN 上,here's an other link在 MSDN 论坛上对其进行了详细解释,并且 here's some help (pinvoke.net)关于如何构建 P/Invoke 调用。

获得文件句柄后,您需要将其包装在 SafeFileHandle 中,这次是在安全的托管 C# 中:

// nativeHandle is the WINAPI handle you have acquired with the P/Invoke call
SafeFileHandle safeHandle = new SafeFileHandle(nativeHandle, true);

现在可以直接打开文件流了:

Stream stream = new FileStream(safeHandle, FileAccess.ReadWrite);

从这一点开始,您可以将它用作 C# 中的任何其他文件或流。完成后不要忘记处理对象。

关于c# - 在 C# 中打开到文件描述符的管道连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/245827/

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