ServerSocket + Routeur + Zone Alarm... - Java - Programmation
Marsh Posté le 22-11-2008 à 11:52:20
Premier conseil, pour tester, désactive ton pare-feu (pas trop longtemps parce que c'est dangereux qd même) pour faire tes test.
Sinon, dans les test que tu décris et qui ne marchent pas, est-ce que tu passe par une connexion internet ou est-ce que tu remplace juste localhost par ton ip publique tout en restant dans le réseau local ?
Autre question, concernant ton routage de port, est-tu sûr d'avoir bien mis TCP ?
Actuellement il a trop de variable dans ton problème (java, neufbox, routage, pare-feu), essaye d'abord d'isoler le problème, et après on pourra chercher une solution ...
Marsh Posté le 16-11-2008 à 19:33:51
Bonsoir a tous!
Alors voila mon problème...
J'ai un ptit serveur en java utilisant la classe ServerSocket :
System.out.println("Démarrage du serveur..." );
ServerSocket ss = new ServerSocket(12345);
while (true) {
System.out.println("En attente de connections..." );
Socket s = ss.accept();
System.out.println("CONNECTION!!!!!" );
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println(br.readLine());
}
Jusque la, tout va bien...
J'ai ensuite un client qui envoi une chaine de caractère vers le serveur :
Socket s = new Socket("<mon ip>", 12345);
OutputStream out = s.getOutputStream();
out.write("ma chaine de caractere".getBytes());
out.flush();
out.close();
s.close();
Jusque la, ca va encore... ou presque... !
L'environnement d'exécution :
Je suis derrière un routeur (Neuf Box 4) et j'ai un pare feu (Zone Alarm)
Lorsque je test sans sortir du réseau local (en remplaçant "<mon ip>" par "localhost" )... Tout va bien. Le serveur reçoit bien la requête de connexion et arrive a afficher la chaine de caractères envoyée par le client...
MAIS lorsque que je met l'ip de ma Neuf Box, rien n'arrive sur le serveur. J'entends déjà certains me dire "Mais il faut modifier les paramètres NAT de la Neuf Box..." . Oui mais voila, j'ai bien routé les port de ma NB4 vers mon PC... Sans résultats (timeout déclenché coté client au bout d'un certain temps)
Piste suivante, je vais bidouiller les paramêtres de sécurité de mon pare feu Zone Alarm...
Avec la plupart des réglages, j'ai le même résultat qu'au dessus (timeout client et rien coté serveur...), mais si j'autorise un certain niveau de sécurité (niveau 'moyen' si je me souvient bien), j'ai un autre scénario qui se passe :
-> J'ai toujours mon timeout coté client qui est déclenché MAIS j'ai aussi une Exception coté serveur "java.net.SocketException: Connection reset" en ayant eu auparavant la trace "CONNECTION!!!!!"... --> Donc le serveur a bien reçu la requête mais lève une exception de sécurité...
Alors voila je cherche un expert Java/Réseau/routeur/ZoneAlarm/ServerSocket qui pourrai m'expliquer quels paramètres utiliser pour le pare feu... ou peut être que c pas du tout la bonne piste, et donc j'aimerais bien le savoir aussi ^^
Et puis si vous avez rien compris a ce qeue j'ai essayé d'expliquer, dites le moi aussi!!!!
Merci d'avance!
@+
Message édité par chezwam56 le 16-11-2008 à 20:44:50