2010-07-14 7 views
2

.net WPF 응용 프로그램을 개발 중이며 양방향 IPC 메커니즘을 사용하고자합니다. 나는 명명 된 파이프와 리모팅이 옵션이라는 것을 알고 있지만, 비 .NET 어플리케이션이 내 어플리케이션과 통신 할 수 있도록 .NET에 의존하지 않는 메커니즘을 만들고 싶습니다..net과의 프로세스 간 통신

SO의 해결책은 무엇입니까? WM_COPYDATA?

답변

2

이 경우 명명 된 파이프를 사용합니다.

네이티브 코드와 .NET의 명명 된 파이프는 fully supported입니다. 이들은 매우 빠르고 효율적인 작업 방식을 제공하며 현재 개발중인 .NET에서 매우 쉽게 작업 할 수 있습니다. 이것은 WM_COPYDATA에 훨씬 더 나은 옵션입니다 (IMO에서 거의 모든면에서).

그런데, 상당수가 Interprocess Communication options입니다.

  • 클립 보드
  • COM
  • 파일 매핑 Windows 소켓
+0

  • 들이 WM_COPYDATA를 이길 합의
  • 파이프 : 이들의 대부분을 포함, .NET 및 네이티브 코드에서 모두 작동합니다. 그들은 TCP/IP 솔루션만큼 잘 지원되는지 확신하지 못합니다. (여기에는 WCF와 같은 것들이 포함되어 있습니다. 평범한 HTTP가 아닙니다.) –

  • +0

    @Steven : 그 이유는 UDP 소켓뿐만 아니라 TCP/IP를 포함하는 Windows 소켓 (마지막 옵션)이 포함 된 이유입니다. –

    +0

    @Steven : 파이프는 Windows에서 매우 잘 지원됩니다. 따라서 WM_COPYDATA가 작동하는 곳이면 파이프가 작동해야합니다. –

    0

    명명 된 파이프는 .NET과 관련이 없습니다. 메모리 매핑이나 TCP/IP도 공유하지 않습니다. .NET Remoting에 관해서는, 양쪽면이 .NET 인 경우에도이를 피할 수 있습니다.