2011-09-25 2 views
0

동일한 컴퓨터에서 프로그램간에 통신하는 방법을 찾고 Named Pipes를 참조했습니다.아무도 네트워크에 연결하지 않으면 컴퓨터가 멈추지 않고 명명 된 파이프를 사용하는 방법?

서버를 연결하는 유일한 방법은 WaitForConnection (비 관리 코드를 사용하기에 충분하지 않음)이지만 생각됩니다. 그러나 아무도 네트워크에 연결하지 않으면 프로그램이 무기한 정지됩니다. 제한 시간 한도로 연결하려면 어떻게해야합니까?

감사합니다.

답변

3

동기 WaitForConnection 메서드를 호출하는 대신 비 차단 서버에 대해 BeginWaitForConnection/EndWaitForConnection을 호출하십시오. 비슷한 대답은 here을 참조하십시오.

원하는 생성자는 5 개의 매개 변수 here이있는 생성자입니다. 다음과 같이 호출 할 수 있습니다.

NamedPipeServerStream pipeServer = new NamedPipeServerStream(
    "<pipe-name>", 
    PipeDirection.InOut, 
    1, 
    PipeTransmissionMode.Byte, 
    PipeOptions.Asynchronous); 
+0

관리되지 않는 코드가 아닙니까? – ispiro

+0

아니요,이 두 메서드는 NamedPipeServerStream 클래스에 있습니다. –

+0

감사. 질문을 편집 한 후 문제가 해결되었다는 것을 알았습니다 (제공된 링크에서). 철저한 답변 주셔서 감사합니다! – ispiro