2009-11-06 3 views

답변

4

OS 인프라로 명명 된 파이프는 컴퓨터 간 통신을 위해 전적으로 사용할 수 있습니다 (MSDN docs on Named Pipes 참조).

명명 된 파이프는 네트워크를 통해 다른 컴퓨터에서 처리한다 같은 컴퓨터 또는 간에 프로세스 간 통신을 제공하는데 사용될 수있다. 서버 서비스가 실행중인 경우 모두 명명 된 파이프를 원격으로 액세스 할 수 있습니다. 로컬로만 명명 된 파이프 을 사용하려는 경우 NT AUTHORITY \ NETWORK에 대한 액세스를 거부하거나 로컬 RPC로 전환하십시오.

그러나 실제로 동일한 컴퓨터 전용 통신 인 WCF 바인딩 "NetNamedPipe"에 대해 이야기하고 있다고 가정합니다. WCF 디자인 팀에 물어볼 필요가있는 이유가 무엇인지에 대한 정보는 없습니다.

그러나 Stephen C가 말한대로 - WCF에서 machine-to-machine 통신이 필요한 경우 대신 netTcpBinding을 사용하십시오. 두 가지 기능은 속도와 기능면에서 비슷합니다.

명명 된 파이프의 경우 article on the support added in .NET 3.5을 참조하십시오.

마크

+0

또한 ... 나는 파이프를 받아들이도록 SQL을 구성하는 것이 로컬로만 작동한다고 생각합니다. – Nestor

+1

@Nestor : 아니오, SQL 서버의 명명 된 파이프는 실제로 컴퓨터를 통과합니다. "매핑 된 메모리"방식은 로컬에서만 사용됩니다. –

+0

오 ... 확인. 감사합니다. marc_s – Nestor

0

로컬이 아닌 경우 소켓이라고 불릴 수 있기 때문에.

EDIT : 실제로 이것은 다소 경솔한 UNIX 중심의 대답입니다. UNIX에서 이름 지정된 파이프는 로컬 통신 전용입니다. 반대로 소켓은 로컬 및 비 로컬 통신 모두에 사용할 수 있으며 다양한 전송 프로토콜을 사용할 수 있습니다. 또 다른 차이점은 당신이 그들을 찾는 방식에 있습니다. 명명 된 파이프는 일반적으로 파일 시스템 네임 스페이스에 있습니다. 소켓 (또는 좀더 정확하게는 소켓 끝점)은 어떤 종류의 네임 서버/서비스에서 일반적으로 조회되는 일종의 네트워크 주소로 식별됩니다.

+0

확실하지 않습니까 (이해합니다). 파이프는 소켓 위에 많은 수작업을 추가합니다. 그들은 동일하지 않습니다. – Nestor

+1

아,이 * nix 전문가! :-) –

+0

@Nestor - 동의합니다. 하지만 제 생각은 여전히 ​​유효합니다. 지역 통신이 아닌 경우 Socket을 사용하는 것이 좋습니다. 특히 원격 시스템이 Windows가 아닌 ... 미래에있을 가능성이있는 경우. –

관련 문제