C# 3.5- 네트워크를 통해 명명 된 파이프를 연결합니다
-
04-07-2019 - |
문제
네트워크에서 C#에서 명명 된 파이프를 설정하는 올바른 방법은 무엇입니까?
현재 '클라이언트'와 '서버'라는 두 대의 기계가 있습니다.
서버는 다음과 같은 방식으로 파이프를 설정합니다.
NamedPipeServerStream pipeServer = new NamedPipeServerStream(
"pipe",
PipeDirection.InOut,
10,
PipeTransmissionMode.Byte,
PipeOptions.None)
pipeServer.WaitForConnection();
//... Read some data from the pipe
클라이언트는 다음과 같은 방식으로 연결을 설정합니다.
NamedPipeClientStream pipeClient = new NamedPipeClientStream(
"server",
"pipe",
PipeDirection.InOut);
pipeClient.Connect(); //This line throws an exception
//... Write some data to the pipe
" server"로 이동하여 '서버'머신을 네트워크에서 액세스 할 수 있습니다.
프로그램을 실행할 때마다 "경로에 대한 액세스가 거부된다"라는 시스템을 얻습니다. 로컬 컴퓨터에서 서버와 클라이언트를 실행하고 ""에 연결하려고하면 코드가 잘 작동합니다. 클라이언트와 함께.
해결책
기계간에 명명 된 파이프를 사용하는 것은 불가능합니다.
"WCF-Netnamedpipe 어댑터는에 대한 교차 프로세스 통신을 제공합니다 같은 컴퓨터"
다른 팁
클라이언트가 파이프에 액세스 할 수있는 권한이 있도록 PAMENDPIPESERVERSTREAM에 대한 권한을 설정해야합니다.
나는 당신의 pipeserverstream의 setAccessControl 메소드를 살펴볼 것입니다.
System.runtime.Runting 네임 스페이스를 살펴보십시오. IIRC, 명명 된 파이프는 원격 채널에서 사용하는 프로토콜을위한 옵션 중 하나입니다.
제휴하지 않습니다 StackOverflow