Je crée une application serveur simple et je peux me connecter au réseau local. Mais je ne peux pas me connecter sur Internet.Java: transfert d'un port vers ServerSocket
Ceci est mon code serveur:
ServerSocket server;
try {
server = new ServerSocket(4000);
} catch(IOException ex) {
System.out.printf("Could not bind socket 4000\n");
System.exit(1);
}
try {
Socket socket = server.accept();
ClientThread client = new ClientThread(socket);
client.start();
} catch(IOException ex) {
}
Et voici le client:
try {
System.out.printf("connecting...\n");
Socket socket = new Socket("mydomain.org", 4000);
System.out.printf("connected!\n");
} catch(UnknownHostException ex) {
ex.printStackTrace();
} catch(IOException ex) {
ex.printStackTrace();
}
J'ai le port 4000 sur mon transmis routeur, qui devrait fonctionner. J'ai renvoyé d'autres ports avant comme 80 et 22.
Lorsque j'exécute le client, j'obtiens la chaîne "connection ...", et elle se bloque là. Je ne reçois pas "connecté!", Ou une trace de pile. Mais comme je l'ai déjà dit, cela fonctionne sur le réseau local. Il fonctionne en se connectant à 127.0.0.1 et en utilisant 192.168.1.90. J'ai utilisé CanYouSeeMe.org pour vérifier si le port était ouvert.Il a réussi sur le port 80, mais il arrive à expiration sur 4000.
Les prises sont bonnes pour le réseau local mais pour la communication internet, il vaut mieux utiliser l'URL, URLConnection ... –