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

yar*_*nkl 2 c# c++ named-pipes

我写了两对命名管道客户端/服务器程序:第一对C#(.NET 4)第二对C++(非托管)

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

C#对彼此工作正常 - 我从客户端发送一条消息,服务器收到它.C++对也可以很好地相互配合.

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

有什么东西阻止C++客户端使用.NET服务器吗?应该有用吗?

谢谢.

ale*_*exm 6

NamedPipeClientStream 并自动将NamedPipeServerStream"\\.\ pipe \"前缀添加到名称中.

C++客户端代码:

hPipe = CreateFile("\\\\.\\pipe\\mypipe", ...)
Run Code Online (Sandbox Code Playgroud)

相应的C#服务器代码:

var pipe = new NamedPipeServerStream("mypipe", ...)
Run Code Online (Sandbox Code Playgroud)

  • 从技术上讲,NamedPipeClientStream和NamedPipeServerStream在名称前加上"\\.\ pipe \".附加意味着在文本后添加.如果附加,名称"mypipe"将变为"mypipe \\.\ pipe \" (2认同)