2008-08-22 2 views
4

.Net 원격 통신과 통신하는 클라이언트/서버 응용 프로그램이 있습니다. 내 고객이 클라이언트 측 구성없이 네트워크에서 서버를 찾을 수 있어야합니다.원격 서버 자동 검색. 방송 여부

내가 아는 한, 리모팅의 발견에 대한 지원은 없다. 클라이언트가 브로드 캐스트 메시지를 통해 서버를 찾을 수있는 UDP 솔루션을 구현할 준비가되었습니다.

앞서 나가기 전에 집단적 인 지혜를 듣고 싶습니다. 이것이 최선의 방법입니까? 다른 제안?

답변

4

이 유형의 기능에 대해 SSDP와 UPnP를 모두 살펴 보았지만 사용자 지정 UDP multicast 솔루션을 사용하는 것이 좋습니다. 기본적으로, 멀티 캐스트는 브로드 캐스트와 매우 유사하지만, 멀티 캐스트 그룹에 합류 한 (즉, 브로드 캐스트를 요청한) 기계 만이 접촉된다.

IMHO, SSDP 및 UPnP 및 리소스 검색에 지나치게 복잡해졌지만 ... 이봐, 표준입니다. ;)

0

내 원격 작업에서 발견 한 가장 좋은 해결책은 클라이언트 목록의 구성 파일에 서버 목록을 유지하고 업데이트 할 수 있도록하는 것이 었습니다. 유지하기가 가장 쉽지는 않았지만 방송이 빠르지 만 방송이 없었습니다.

+0

이미 클라이언트 측 구성 솔루션이 있습니다. 이 무 접촉 요구 사항이 내 무릎에 새로 떨어졌습니다. 기본적으로 관리 작업을 최소화하면서 막대한 양의 더미 사용자에게 배포해야합니다. 어쨌든, Thx. – Ishmaeel

1

필요한 것은 Simple Service Discovery Protocol 또는 SSDP입니다. 이는 Universal Plug and Play에 대한 Microsoft 지원의 일환으로 Windows에서 구현됩니다. 이것은 업계 표준 프로토콜이기 때문에 좋은 선택입니다. 예를 들어, 방화벽이나 기타 문제를 다루기를 원하면 자신의 솔루션을 롤업하는 대신 다른 사람이 알아 낸 것입니다.

당신이 말하고 있기 때문에. NET에서 나는 당신이 Windows에 있다고 가정합니다. Universal Plug and Play (UPnP) Client Support이라는 제목의 C 스타일 API와 Windows 용 COM API를 설명하는 다소 오래된 문서 (2001)가 있습니다. COM API는 UPNP.DLL에 의해 노출되며 SSDP에 대한 C 스타일 API는 SSDPAPI.DLL에 의해 노출됩니다.

COM-style APIs for UPNP이 가장 좋습니다. C#은 COM 객체를 마무리하고 interop을 처리 할 수 ​​있기 때문에. 이 API가 C# 또는 .NET Framework에 기본적으로 이식 된 곳을 찾을 수 없었습니다.

1

또한 Zeroconf 구현 인 Apple의 Bonjour을 고려할 수 있습니다. Mac, PC 및 Linux/BSD에서 사용할 수 있습니다.

0

최근의 MS 업데이트로 인해 멀티 캐스트 UDP 솔루션이 신뢰할 수없는 것으로 보입니다.