我写了两对命名管道客户端/服务器程序: C# (.NET 4) 中的第一对 C++ 中的第二对(非托管)
所有 4 个测试程序都使用相同的管道名称\\.\pipe\mypipe
C# 对彼此工作良好 - 我从客户端发送一条消息,服务器接收到它。 C++ 对也可以很好地相互配合。
但是...当我尝试使用 C++ 服务器运行 C# 客户端,或使用 C# 服务器运行 C++ 客户端时,它不起作用。客户端无法连接到服务器。
是否有什么东西阻止 C++ 客户端与 .NET 服务器一起工作? 它应该有效吗?
谢谢。
最佳答案
NamedPipeClientStream
和 NamedPipeServerStream
自动为名称添加前缀“\\.\pipe\”。
C++ 客户端代码:
hPipe = CreateFile("\\\\.\\pipe\\mypipe", ...)
对应的C#服务器代码:
var pipe = new NamedPipeServerStream("mypipe", ...)
关于c# - 命名管道 : C# server, C++ 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430705/