命名管道:C# 服务器、C++ 客户端

Named pipes: C# server, C++ client

我写了 2 对命名管道 client/server 程序: C# (.NET 4) 中的第一对 C++ 中的第二对(非托管)

所有 4 个测试程序都使用相同的管道名称 \\.\pipe\mypipe

C# 对相互配合良好 - 我从客户端发送一条消息,服务器接收到该消息。 C++ 对彼此也能正常工作。

但是...当我尝试 运行 C# 客户端与 C++ 服务器,或 C++ 客户端与 C# 服务器时 - 然后它不起作用。客户端无法连接到服务器。

是否有什么东西阻止了 C++ 客户端与 .NET 服务器一起工作? 它应该有效吗?

谢谢。

NamedPipeClientStreamNamedPipeServerStream 自动为名称添加前缀“\\.\pipe\”。

C++ 客户端代码:

hPipe = CreateFile("\\.\pipe\mypipe", ...)

对应的C#服务器代码:

var pipe = new NamedPipeServerStream("mypipe", ...)