[英]Using C#, how do you connect to a C++ Named Pipe that is mono-directional?
我在C ++程序Server
创建了一个命名管道,我想在C#应用程序Client
连接到它。 我用C ++编写了一些测试代码,并且可以将其写到管道中。 我遇到的问题是获取C#代码写入命名管道。 现在,它引发了System.UnauthorizedAccessException' occurred in System.Core.dll
异常中System.UnauthorizedAccessException' occurred in System.Core.dll
的System.UnauthorizedAccessException' occurred in System.Core.dll
。 这两个程序都以admin身份在Visual Studio中运行,我的设置是否错误?
C ++服务器
pipe_handle = CreateNamedPipe("\\\\.\\pipe\\StackPipe", // Name of Pipe
PIPE_ACCESS_INBOUND, // Direction of Pipe
PIPE_TYPE_MESSAGE |PIPE_READMODE_MESSAGE | PIPE_WAIT, // Pipe Mode
1, // Maximum instances
0, // Output Buffer Size
(BUFFER_MAX*sizeof(_TCHAR)), // Input Buffer Size
NMPWAIT_USE_DEFAULT_WAIT, // Default Time Out
NULL); // Security Attributes - Admin and System
C ++测试客户端
WaitNamedPipe(L"\\\\.\\pipe\\StackPipe", NMPWAIT_WAIT_FOREVER);
HANDLE hpipe = CreateFile( L"\\\\.\\pipe\\StackPipe", //Formatting is different
GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
C#客户端
NamedPipeClientStream pipeClient =
new NamedPipeClientStream( ".",
"StackPipe",
PipeDirection.In,
PipeOptions.Asynchronous, TokenImpersonationLevel.Identification);
pipeClient.Connect(); //Fails Here
感谢@Harry Johnston,我误读了方向:
NamedPipeClientStream pipeClient =
new NamedPipeClientStream( ".",
"StackPipe",
PipeDirection.Out, // Change Direction
PipeOptions.Asynchronous);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.