所以我有一個在C + +的應用程序,它創建一個namedpipe接收通信。 namedpipe的名稱是「\\。\ pipe \ apppipe」我還有另一個appB也是用C++編寫的,它使用相同的命名管道連接到appA。簡單。現在在世界上移動:),appC在.NEt Framework 4.X上用C#構建,並且打算連接到appA創建的同一個命名管道(appB將被中斷)。但是,我發現NamedPipeClientStream對象似乎無法連接到appA的namedpipe。我以爲有名管道是一個有名管道,我不必關心它是如何連接的。Namedpipe:C++ vs .NET 4.0
這是APPC年代嘗試連接時失敗的真實...方式
NamedPipeClientStream pipeClient = new NamedPipeClientStream("\\\\.\\pipe\\apppipe");
pipeClient.Connect(5000);//5 second timeout
它是否有名字呢?我現在應該如何在C#端表示連接到同一個管道?
感謝
編輯: 的appA的管道創建代碼只是
LPTSTR lpszPipename = TEXT("\\\\.\\pipe\\apppipe");
pipeHandle = CreateNamedPipe(
lpszPipename,
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
BUFSIZE,
BUFSIZE,
0,
NULL);
if(pipeHandle == INVALID_HANDLE_VALUE)
{
acutPrintf(L"\n Problem creating pipe");
return;
}
這可能是權限/權利的問題......你需要解釋更多的細節,顯示出更多的代碼... – Yahia
連接是立即失敗還是超時? 'GetLastError()'的價值是什麼?服務器期望的管道方向是什麼? –
它在appC超時。這是appA的管道創建[上面編輯]。 – Glstunna