bonjour
Je suis en train de créer un client pour se connecter à un serveur en utilisant son adresse ip externe j'ai utilisé la lib upnp pour la redirection des ports côté serveur, j'ai vérifié les ports à l'aide
http://www.yougetsignal.com/tools/open-ports/
le port externe s'ouvre lorsque je lance le serveur . le serveur et le client sont sur deux ordinateurs diffrents mais ils sont connectés au même routeur
le client peut se connecter au serveur en utilisant son adresse locale. mais pas avec l'adresse IP externe
le pare-feu désactivé sur les deux machines
mais quand je lance le serveur, puis le client j'ai obtenu :
java.net.ConnectException: Connection refused: connect
l'erreur vient du client
le serveur fonctionne bien parce que quand je vérifie le port avec le vérificateur port, il l'obtenir comme une demande de connexion
code du serveur
code du client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43 public class upnp { public static void main(String[] args) { String chaine=null; InternetGatewayDevice dev=null; ServerSocket Ssocket=null; Socket Csocket=null; try{ dev = InternetGatewayDevice.getDevices( 1000 )[ 0 ]; chaine=dev.getExternalIPAddress(); System.out.println(dev.addPortMapping("sbs-server", null, 1020, 1020,"192.168.2.36", 0, "TCP")); System.out.println(chaine); }catch(IOException | UPNPResponseException e){System.out.println("erreur");} try{ Ssocket=new ServerSocket(1020); }catch(IOException e){ e.printStackTrace(); try{ dev.deletePortMapping(null, 1020, "TCP"); }catch(IOException | UPNPResponseException b){b.printStackTrace();} } try{ System.out.println("waiting for client ..."); Csocket=Ssocket.accept(); System.out.println("a client is ready"); }catch(IOException e){e.printStackTrace(); try{ Ssocket.close(); Csocket.close(); }catch(IOException a){a.printStackTrace();} } try{ dev.deletePortMapping(null, 1020, "TCP"); }catch(IOException | UPNPResponseException b){b.printStackTrace();} } }
please help
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class client { public static void main(String[] zero) { Socket socket; try { socket = new Socket("41.226.78.85",1020); System.out.println("connected !"); socket.close(); }catch (UnknownHostException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } } }
Partager