Frage

Ich habe eine Client/Server-Anwendung, die mit .Net Remoting kommuniziert.Ich möchte, dass meine Clients die Server im Netzwerk finden können, ohne dass eine clientseitige Konfiguration erforderlich ist.

Soweit ich weiß, gibt es keine Unterstützung für die Erkennung im Remoting.Ich bin bereit, eine UDP-Lösung zu implementieren, bei der die Clients die Server über Broadcast-Nachrichten finden können.

Ich möchte die kollektive SO-Weisheit hören, bevor ich fortfahre.Ist das der beste Weg?Irgendwelche anderen Vorschläge?

War es hilfreich?

Lösung

Ich habe mir sowohl SSDP als auch UPnP für diese Art von Funktionalität angesehen, würde aber die Verwendung eines benutzerdefinierten UDP empfehlen Multicast Lösung.Im Grunde ist Multicast einem Broadcast sehr ähnlich, allerdings werden nur Maschinen verwendet, die der Multicast-Gruppe beigetreten sind (d. h.die Sendung angefordert hat) werden kontaktiert.

IMHO, SSDP und UPnP und aufgebläht und übermäßig kompliziert für die Ressourcenerkennung ...aber hey, es ist ein Standard.;)

Andere Tipps

Scheint, als ob das, was Sie brauchen, das ist Einfaches Service Discovery-Protokoll oder SSDP.Dies wird in Windows im Rahmen der Microsoft-Unterstützung implementiert Universelles Plug-and-Play.Da es sich um ein Industriestandardprotokoll handelt, scheint es eine gute Wahl zu sein.Wenn Sie sich beispielsweise mit Firewalls oder anderen Problemen befassen möchten, wird dies von anderen herausgefunden, anstatt dass Sie Ihre eigene Lösung entwickeln müssen.

Da Sie von .NET sprechen, gehe ich davon aus, dass Sie Windows verwenden.Es gibt ein etwas älteres Dokument (2001), das eine API im C-Stil und eine COM-API für Windows mit dem Titel beschreibt Universelle Plug-and-Play-Client-Unterstützung (UPnP)..Die COM-APIs werden durch UPNP.DLL verfügbar gemacht und die C-Stil-APIs für SSDP werden durch SSDPAPI.DLL verfügbar gemacht.

Der COM-APIs für UPNP sind wahrscheinlich die beste Wahl.Da C# COM-Objekte für Sie einpacken und die Interop-Funktionalität übernehmen kann.Ich konnte keinen Ort finden, an dem diese API nativ nach C# oder .NET Framework portiert wurde.

Sie könnten auch Apples in Betracht ziehen Bonjour, das ist ihr Zeroconf Implementierung.Es ist für Mac, PCs und Linux/BSD verfügbar.

Die beste Lösung, die ich bei meiner Remoting-Arbeit gefunden habe, bestand darin, die Serverliste in einer Konfigurationsdatei auf den Client-Systemen zu behalten und aktualisierbar zu machen.Nicht ganz einfach zu warten, aber schnell und ohne Übertragung.

Meine Multicast-UDP-Lösung scheint aufgrund des aktuellen MS-Updates unzuverlässig zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top