Pregunta

Mi aplicación abre un socket TCP y espera a que los datos de otros usuarios de la red utilizando la misma aplicación. Al mismo tiempo, se puede transmitir datos a un host especificado en la red.

Actualmente, tengo que introducir manualmente la dirección IP del host de destino para poder enviar datos. Quiero ser capaz de encontrar una lista de todos los servidores que ejecutan la aplicación y tener la opción de usuario que acogen a los datos de difusión a.

es Bonjour / ZeroConf la ruta correcta para ir a lograr esto? (Me gustaría que la cruz-plataforma OSX / Win / * Nix)

¿Fue útil?

Solución

  

que puede transmitir datos a un host especificado en la red

Este es un no-sequitur.

Estoy suponiendo que en realidad no emisión media, usted se refiere a Unicast o simplemente "Enviar"?

  

es Bonjour / ZeroConf la ruta correcta para ir a lograr esto?

Esto realmente depende de su entorno de destino y lo que su aplicación está destinada a hacer.

Como señala Ignacio, es necesario instalar el software de Apple en Windows para Zeroconf / mDNS a trabajo en este momento.

Esto podría ser adecuado para su uso pequeña / oficina en casa.


Sin embargo redes más grandes pueden tener la capa 2 de multidifusión deshabilitado para una variedad de razones, momento en el que su aplicación podría estar en problemas.

Si usted quiere que el trabajo en el entorno de la empresa, entonces se requiere una cierta configuración, pero eso no tiene que ser hecho en el borde (en las instancias de cliente de aplicaciones).

Podría ser a través de una opción de DHCP, o por registros de servicio DNS .. en estos casos que posiblemente estaría escribiendo un servidor consultable a realizar un seguimiento de clientes activos .. muy parecido a un BitTorrent Tracker.

Dos cosas a tener en cuenta al diseñar su aplicación en red:

  • ¿Podría ser nunca motivo para ejecutar más de una "instalación" de su aplicación en una red?
  • Siempre considere las implicaciones de control de versiones:? Un cliente está más al día que otro, pueden todavía hablar el uno al otro o al menos fallar con gracia

Otros consejos

Zeroconf / DNS-SD es una excelente idea en este caso. Es proporcionada por Bonjour en OS X y Windows (aunque debe instalarse por separado o como parte de un producto de Apple en Windows), y por Avahi en FOSS * nix.

Creo que ZeroConf es un muy buen comienzo. Usted puede encontrar este documento útil.

Tengo una lista en una página web, bueno si usted necesita las comunicaciones por Internet.

<dl_service updated="2010-12-03 11:55:40+01:00">
 <client name="internal" ip="10.0.23.234" external_ip="1.1.1.1"/> 
 <client name="bigone" ip="2.2.2.2" external_ip="2.2.2.2">
  <messsage type="connect" from="Bigone" to="internal" />
 </client> 
</dl_service>

Mi idea inicial fue la de añadir perforación cortafuegos y todo eso, pero simplemente no podía ser molestado a muchos de los anfitriones, donde el uso de direcciones IP externas para que sea un problema ..

Pero Realmente recomiendo Zeroconf, al menos si se utiliza Linux + MacOSX, no sé acerca de Windows en absoluto.

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