Pregunta

Tengo una aplicación cliente/servidor que se comunica con la comunicación remota .Net.Necesito que mis clientes puedan encontrar los servidores en la red sin necesidad de configuración del lado del cliente.

Hasta donde yo sé, no hay soporte para el descubrimiento en comunicación remota.Estoy preparado para implementar una solución UDP donde los clientes podrán encontrar los servidores mediante mensajes de difusión.

Quiero escuchar la sabiduría colectiva de SO antes de seguir adelante.Es esta la mejor manera?¿Cualquier otra sugerencia?

¿Fue útil?

Solución

He analizado SSDP y UPnP para este tipo de funcionalidad, pero recomendaría utilizar un UDP personalizado. multidifusión solución.Básicamente, la multidifusión es muy similar a una transmisión, pero solo las máquinas que se han unido al grupo de multidifusión (es decir,solicitado la transmisión) son contactados.

En mi humilde opinión, SSDP y UPnP e inflados y demasiado complicados para el descubrimiento de recursos...pero bueno, es un estándar.;)

Otros consejos

Parece que lo que necesitas es el Protocolo simple de descubrimiento de servicios o SSDP.Esto se implementa en Windows como parte del soporte de Microsoft para Conexión y reproducción universales.Dado que se trata de un protocolo estándar de la industria, parece una buena apuesta.Por ejemplo, si desea lidiar con firewalls u otros problemas, otros lo habrán resuelto en lugar de que usted tenga que implementar su propia solución.

Como estás hablando de .NET, asumiré que estás en Windows.Hay un documento algo antiguo (2001) que describe una API estilo C y una API COM para Windows titulado Soporte al cliente Universal Plug and Play (UPnP).Las API COM están expuestas mediante UPNP.DLL y las API de estilo C para SSDP están expuestas mediante SSDPAPI.DLL.

El API de estilo COM para UPNP son probablemente tu mejor opción.Dado que C# puede envolver objetos COM por usted y manejar la interoperabilidad.No pude encontrar ningún lugar donde esta API se haya portado a C# o .NET Framework de forma nativa.

También podrías considerar el de Apple. Buen día, cual es su configuración cero implementación.Está disponible para Mac, PC y Linux/BSD.

La mejor solución que encontré en mi trabajo remoto fue mantener la lista de servidores en un archivo de configuración en los sistemas cliente y hacerla actualizable.No es el más fácil de mantener, pero fue rápido y no transmitió.

Mi solución UDP de multidifusión parece no ser confiable debido a una actualización reciente de MS.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top