PB connection Refused serveur / client java

PB connection Refused serveur / client java - Java - Programmation

Marsh Posté le 21-11-2002 à 19:50:30    

Bonjour , un petit coup de main avec mes "chaussettes"
Le problème est que sur une mm machine ça marche, mais que lorsque le client est sur ma machine et le serveur sur une distante çà marche pas, le client sur une machine distante et le serveur sur ma machine ça marche ???
Alors un peu d'aide serait la bienvenue.
Pour info ma machine tourne ss Linux firewall port 8765 ouvert
Voilà le code du client
*****************************************************************
import java.net.*;import java.io.*;
import java.net.*;
 
class Client
{
  static final int port=8765;
 
  public static void main(String[] argv)
    {
      BufferedReader lecteurFichier=null;
      BufferedReader entree=null;
      PrintStream  sortie=null;
      String ligne=null;
      Socket socket=null;
      try
        {
          socket=new Socket("*.*.*.*.",port);
          //lecteurFichier =
            //new BufferedReader(new FileReader(argv[0]));
          entree=new BufferedReader(new InputStreamReader(socket.getInputStream()));
          sortie=new PrintStream(socket.getOutputStream());
          //while ((ligne=lecteurFichier.readLine())!=null)
            sortie.println("Si vous revecez ce message c'est que ça marche" );
                   sortie.println("xxxxxx" );
          System.out.println(entree.readLine());
          socket.close();
        }
      catch(IOException exc)
        {
         System.out.println(exc.getMessage());
          System.out.println("probleme a determiner" );
        }
    }
}
*****************************************************************
Voilà le serveur :
 
import java.net.*;
import java.io.*;
import java.util.*;
 
class Service extends Thread
{
  Socket socket;
  BufferedReader entree;
  PrintStream sortie;
 
  Service(Socket socket)
    {
      this.socket=socket;
      try
        {
          entree=new BufferedReader(new InputStreamReader
                                    (socket.getInputStream()));
          sortie=new PrintStream(socket.getOutputStream());
        }
      catch(IOException exc){
       System.out.println("3"+exc.getMessage());
        try{socket.close();}catch(IOException e){System.out.println("4"+e.getMessage());}}
      this.start();
    }
 
  public void run()
    {
      String texte;
      int compteur=0;
      StringTokenizer st;
      try
        {
          while(!(texte=entree.readLine()).equals("xxxxxx" )){
              compteur+=(new StringTokenizer(texte)).countTokens();
              System.out.println(texte);
            }
          sortie.println("votre texte possede "+compteur+
                         " mots" );
        }
      catch(IOException exc){System.out.println("1"+exc.getMessage());}
      try{socket.close();}catch(IOException e){System.out.println("2"+e.getMessage());}
    }
}
 
class Serveur extends Thread
{
  final static int port=8765;
  ServerSocket receptionniste;
 
  Serveur()
    {
      try
        {
          System.out.println("Ouverture du ServeurSocket" );
          receptionniste=new ServerSocket(port);
        }
      catch(IOException exc)
        {
          System.out.println("impossible de creer le serveur" );
        }
 
      this.start();
    }
 
  public void run()
    {
      Socket socket;
      Service c;
 
      try
        {
          while(true)
            {
              socket=receptionniste.accept();
              c=new Service(socket);
            }
        }
      catch(IOException exc)
        {
          System.out.println("probleme de connection" );
        }
 
    }
  public static void main(String argv[])
    {
     try{
        System.out.println("Ouverture du serveur" );
        new Serveur();
 
        }catch(IOException e){System.out.println(e.getMessage());}
    }
}

Reply

Marsh Posté le 21-11-2002 à 19:50:30   

Reply

Marsh Posté le 21-11-2002 à 20:22:02    

t'es en reseau local ? ya un firewall entre les 2 machines ?

Reply

Marsh Posté le 21-11-2002 à 20:52:09    

Oui je suis en réseau local, et non  pas de firewall entre les 2 machines

Reply

Marsh Posté le 21-11-2002 à 20:53:15    

almadeus a écrit a écrit :

Pour info ma machine tourne ss Linux firewall port 8765 ouvert



almadeus a écrit a écrit :

Oui je suis en réseau local, et non  pas de firewall entre les 2 machines



[:meganne]


Message édité par --greg-- le 21-11-2002 à 20:53:21

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 21-11-2002 à 21:01:10    

J'ai dit une connerie Greg ?
Oui j'ai un firewall qui filtre les E / S de mon réseau local, mais pas à l'intérieur du réseau local.

Reply

Marsh Posté le 22-11-2002 à 11:05:22    

almadeus a écrit a écrit :

J'ai dit une connerie Greg ?
Oui j'ai un firewall qui filtre les E / S de mon réseau local, mais pas à l'intérieur du réseau local.




et tu as essayé en arrêtant le firewall pour supprimer définitivement cette hypothèse ?
 
Sinon côté client je vois pas bien où est l'IP du serveur, c'est quoi cette chaine *.*.*.*. ?


Message édité par krosso le 22-11-2002 à 11:08:16
Reply

Marsh Posté le 22-11-2002 à 11:13:37    

encore qqun qui se connecte en localhost?  :whistle:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 22-11-2002 à 11:19:40    

DarkLord a écrit a écrit :

encore qqun qui se connecte en localhost?  :whistle:  




on dirait bien  :pfff:

Reply

Marsh Posté le 22-11-2002 à 11:32:48    

*.*.*.*.* => IP du serveur
Qu'entendez vous par qq qui connecte en localhost?
En fait on récupère l'IP du serveur et le client se connecte dessus

Reply

Marsh Posté le 22-11-2002 à 11:34:13    

Avec ou sans Firewall, çà ne fonctionne pas dès lors que le serveur est implanté sur une autre machine que la notre et hors du réseau local

Reply

Marsh Posté le 22-11-2002 à 11:34:13   

Reply

Marsh Posté le 22-11-2002 à 11:35:29    

bon sais tu pinger la machine ? faire un ping du client vers le serveur et du serveur vers le client ?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 22-11-2002 à 11:39:49    

les machines client et serveur sont connectées  
apparament on arrive pas a ouvrir le port sur le serveur on recoit Connection refused: connect sur le client pour socket = new Socket(IP serveur, port du serveur)

Reply

Marsh Posté le 22-11-2002 à 11:41:29    

DarkLord a écrit a écrit :

bon sais tu pinger la machine ? faire un ping du client vers le serveur et du serveur vers le client ?




Etape suivante : quand le serveur tourne, essaye de te connecter de la machine cliente avec telnet :
telnet ipserveur portserveur

Reply

Marsh Posté le 22-11-2002 à 11:45:34    

T'as pas un réseau local avec des ip privée genre 192.168.*.* et l'autre avec des IP publiques ?
Y a un routeur enter les deux réseaux ?
Il fait du Nat ?  

Reply

Marsh Posté le 22-11-2002 à 11:51:13    

[:yaisse2]
Désolé de m'incruster, mais j'ai juste une toute ch'tite question de débutant en Java !
 
Apparemment, la méthode accept() de ServerSocket est une méthode synchrone.
A part un Thread, y'a un moyen pour un ServerSocket d'attendre un client de manière asynchrone ? (Sur le même principe que CAsyncSocket en MFC)
 
Merci, et désolé à l'auteur du topic :jap:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-11-2002 à 11:53:24    

Avec telnet connection refussée aussi
 

Reply

Marsh Posté le 22-11-2002 à 11:55:19    

almadeus a écrit a écrit :

Avec telnet connection refussée aussi
 




 
bin laisse tomber ton code. C'est pas un prob de programmation ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 22-11-2002 à 11:55:33    

tu sais la pinger ou pas?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 22-11-2002 à 12:01:17    

il y aurait pas une securite sous windows pour ouvrir un port a partir du serveur.
On ping bien le client et le serveur

Reply

Marsh Posté le 22-11-2002 à 12:25:08    

almadeus a écrit a écrit :

il y aurait pas une securite sous windows pour ouvrir un port a partir du serveur.
On ping bien le client et le serveur




 
ben euh ... lance ton serveur et fait un ptit netstat -an pour voir si le port est ouvert ?

Reply

Marsh Posté le 22-11-2002 à 13:11:44    

almadeus a écrit a écrit :

*.*.*.*.* => IP du serveur
Qu'entendez vous par qq qui connecte en localhost?
En fait on récupère l'IP du serveur et le client se connecte dessus



comment  :heink:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 22-11-2002 à 13:20:00    

on connait l IP de la machine ou se trouve le serveur  
avec netstat -an on a 0.0.0.0:8765     LISTENING

Reply

Marsh Posté le 22-11-2002 à 13:24:04    

il serait pas deja oqp par autre chose ton port? :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 22-11-2002 à 13:31:45    

non le port nest pas oqp
avant de lancer le serveur je fais un netstat ki ne montre pas de port ouvert
apres je lance le serveur et netstat montre ke le port est maintenant ouvert

Reply

Marsh Posté le 22-11-2002 à 13:33:30    

almadeus a écrit a écrit :

Avec ou sans Firewall, çà ne fonctionne pas dès lors que le serveur est implanté sur une autre machine que la notre et hors du réseau local




Si telnet ne fonctionne pas entre le client et le serveur, c'est peut-être au niveau du routeur qui relie les deux réseaux qu'il faut chercher.

Reply

Marsh Posté le 22-11-2002 à 16:15:37    

Pas de réponse...?
Soit il est parti en week-end et je vais bientôt faire pareil  :D , soit c'était vraiment bête et il ose pas le dire...

Reply

Marsh Posté le 22-11-2002 à 17:20:32    

>Si telnet ne fonctionne pas entre le client et le serveur, >c'est peut-être au niveau du routeur qui relie les deux réseaux >qu'il faut chercher.
Je sais pas, c'est pour çà !!!
On a pas trouvé, mais on suppose que ça vient de notre réseau local, car lorsque le serveur est chez nous TVB, lorsque c'est une machine distante gros problème!!
voilà

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed