Bonjour,
Ca va faire quelques jours que j'essaye de connecter deux ordinateurs distants sans y arriver. Un PC est sous Windows et est connecté à Internet via un routeur, l'autre ordinateur est sous Ubuntu et utilise également un routeur pour se connecter.
Tout d'abord récupérer l'ip n'est pas une chose facile, la méthode la plus fréquente ne renvoie pas le bon résultat et donne des résultats différents:
Sur Ubuntu, l'ip reçue est 127.0.1.1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 InetAddress IP = InetAddress.getLocalHost(); String ip = IP.getHostAddress();
Sur Win XP: 192.168.1.40
Donc j'ai l'ip local dans un cas, l'ip du réseau attribuée par le routeur dans l'autre cas. Pour pouvoir connecter deux PC entre eux à distance, il me faut l'ip fournie par le provider.
Pour cela, je récupère l'ip via un site web (qui contient un script php qui retourne l'ip du visiteur). L'ip reçue est bien la bonne, mais l'ip est la même pour tout les PC du réseau !
Quand on essaye cette méthode en local, il retourne connection refused et avec des PC distants, le programme freeze.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //côté client Socket client; try{ client = new Socket(IP,Port); } catch(Exceptione){System.err......;}Comment pourrais-je faire pour que ca se connecte dans tout les cas de figure? (OS différents, routeur, plusieurs ordinateurs connectés/routeur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //côté serveur ServerSocket server; server = new ServerSocket(8080); Socket clientSocket = null; clientSocket = server.accept(); JOptionPane.showMessageDialog(null,"Un nouveau client est connecté, son ip: "+clientSocket.getInetAddress().toString(),"",JOptionPane.INFORMATION_MESSAGE); clientSocket.close()
Merci par avance pour votre aide.
Partager