Bonsoir à tous, mon problème est très simple: je suis en train de faire une serie d'utilitaires pour le localHost en java et je souhaite pouvoir utiliser une commande qui liste tout appareils dans un réseau local et ensuite pouvoir choisir l'appareil avec lequel on souhaite interagir. Seulement voila, juste pour la commande, j'ai décidé d'utiliser un ping loop, j'ai donc tenté ça mais il lui faut pour de 3 minutes pour tester toutes les adresses avec seulement les 3 derniers chiffres de l'adresse IP, je prends donc peur pour la suite. Quelles sont les perfs de la boucle for par rapport aux autres? voila mon code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; /** * Created by white on 09/09/2015. */ public class main { static final String IP = "192.168.0.51"; public static void main(String[] args) throws IOException { String ping = "192.168.0."; long time = System.currentTimeMillis(); try { for (int i = 0; i < 255; i++) { { InetAddress test = InetAddress.getByName(ping + i); if (test.isReachable(5000)) System.out.println(test + " is reachable"); else System.out.println("nothing found " + i); } } }catch( UnknownHostException e){ e.printStackTrace(); } System.out.println(System.currentTimeMillis() - time + " ms"); } } |
le code est très mal optimisé… ça va juste donner des temps indécents(reforcé en plus par ce 5000 de pingout)
Merci beaucoup les zamis, GouleFutée