diffusions UDP sur les serveurs de base de données :) Cela vous permettra de choisir la diffusion sur toutes les machines sur le réseau local et les émissions elles-mêmes peuvent porter l'adresse IP des serveurs . Pour obtenir l'adresse IP locale, utilisez InetAddress ip = InetAddress.getLocalHost();
De http://java.sun.com/j2se/1.4.2/docs/api/java/net/DatagramSocket.html:
diffusions UDP envoie des sont toujours activés sur un DatagramSocket
. Pour recevoir des paquets de diffusion, un DatagramSocket
doit être lié à l'adresse générique. Dans certaines implémentations, des paquets de diffusion peuvent également être reçus lorsqu'un DatagramSocket
est lié à une adresse plus spécifique.
Exemple: DatagramSocket s = new DatagramSocket(null); s.bind(new InetSocketAddress(8888));
ce qui équivaut à: DatagramSocket s = new DatagramSocket(8888);
Les deux cas vont créer un DatagramSocket
capable de recevoir des émissions sur le port UDP 8888.
Edit: vous pourriez doigt aussi toutes les adresses IP sur le réseau; utilisez l'algorithme au http://www.linglom.com/2007/02/20/how-to-find-subnet-number-ip-addresses-in-the-subnet-in-a-few-seconds/ pour calculer les adresses IP des sous-réseaux, parcourez-les et testez chacun d'eux en tant que serveur H2 (essayez de vous connecter). Vous souhaiterez peut-être plusieurs threads pour accélérer la découverte.