2011-07-22 15 views
7

Para mi aplicación para Android, los usuarios necesitan conectarse a un servidor que se alojará en algún lugar de la misma LAN. Puede haber varios servidores alojados en la misma LAN. Para facilitarle al usuario, iba a escanear la LAN actual a la que está conectado el dispositivo Android y luego enumerar todos los dispositivos de red que tienen el servidor ejecutándose en ella, en lugar de que el usuario ingrese la IP en la computadora. a mano.Network Device Discovery

Soy bastante nuevo en la creación de redes, y después de algunas búsquedas descubrí que tendría que usar una búsqueda de DNS de transmisión múltiple o difusión UDP para detectar los otros dispositivos. También encontré una buena biblioteca llamada jmDNS, aunque he encontrado muy poca documentación y código de muestra en ella. ¿Podría alguien señalarme en la dirección correcta por lo que estoy tratando de hacer para ahorrarme tiempo perdido (sobre todo si estoy en el camino correcto)? ¿Asumo que tendré que modificar un poco mi servidor para transmitirlo allí? Funciona completamente según lo previsto si ingreso manualmente el IP en la página de configuración en mi aplicación. Además, esto solo necesita descubrir computadoras con Windows, no estoy seguro si eso importa. Gracias por adelantado.

+0

Sí, mDNS es probablemente la mejor manera de hacerlo aquí. Sin embargo, necesitará instalar el servicio Bonjour en las PC con Windows, ya que no es compatible de forma nativa allí. – Piskvor

+0

Por instalación, ¿te refieres a un instalador real (que podría ser un problema) o simplemente a agregar el código a mi servidor para que sea compatible con Bonjour? –

+0

Creo * que podría ir a la ruta "agregar a su servidor", pero sería más trabajo para usted; Hasta ahora, he estado usando este instalador de Apple: http://en.wikipedia.org/wiki/Bonjour_(software)#Microsoft_Windows_implementation (Mac OS y Linux tienen soporte nativo; creo que este servicio puede ser parte de la instalación de iTunes, por lo que la computadora ya puede tener esto) – Piskvor

Respuesta

7

Bueno, jmDNS es una biblioteca completa de Java que puede usar para su configuración. Se puede usar para braodcast de sus servicios que otros clientes pueden buscar.

Bounjour service on windows es un poco complicado, aunque es definitivamente posible. La forma más fácil, yo diría, es usar jmDNS para difusión y descubrimiento tanto para sus servidores como para sus clientes.

+0

Creo que esta es la forma en que lo abordaré, gracias. –

0

Puede ejecutar los jDM u otro servicio en su red de área local como un servicio en segundo plano o un dameon.

Cuestiones relacionadas