IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Probleme de connexion a un serveur


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 60
    Par défaut Probleme de connexion a un serveur
    Bonjour,

    J'ai écris les 2 classes suivantes pour tester une connexion client serveur.
    Client.java :
    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
    //-------------//
    // Client.java //
    //-------------//
     
    import java.net.*; 
    import java.io.*;
     
    public class Client {
     
      public static void main(String[] args) throws Exception {
        if(args.length != 2){
        	System.out.println("Usage : java Client ip port");
        	System.exit(0);
        }
     
        Integer port = Integer.parseInt(args[1]);
        Socket s = new Socket(args[0], port);
     
        //lire et ecrire du texte dans cette socket
        BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
        PrintStream socketOut = new PrintStream(s.getOutputStream());
        // Informe l'utilisateur de la connection
        System.out.println("Connecte sur " + s.getInetAddress() + ":"+ s.getPort());
        //on envoie au serveur une chaine de caractere
        StringBuilder chaine = new StringBuilder();
        chaine.append("Ceci est un test");
        socketOut.println(chaine);
     
        //lit ce que le serveur a fait
        String line = in.readLine();
        System.out.println(line);
      }
    }
    Server.java :
    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
    44
    45
    46
    47
    //-------------//
    // Server.java //
    //-------------//
     
    import java.net.*;
    import java.io.*;
     
    public class Server implements Runnable {
     
      public static void main(String[] args) throws Exception {
      	if(args.length != 1){
      		System.out.println("Usage : java Server port");
      		System.exit(0);
      	}
      	Integer port = Integer.parseInt(args[0]);
        ServerSocket srv = new ServerSocket(port);
     
        while(true) {
          Thread t = new Thread(new Server(srv.accept()));
          t.start();
        }
        // srv.close();
      }
     
      // Client socket in/out streams
      BufferedReader clientInput_;
      //OutputStream clientOutput_;
      PrintStream clientOutput_;
     
      public Server(Socket client) throws Exception {
        clientInput_ = new BufferedReader(
          new InputStreamReader(client.getInputStream()));
        //clientOutput_ = client.getOutputStream();
        clientOutput_ = new PrintStream(client.getOutputStream());
      }
     
      public void run() {
        try {
          String line = clientInput_.readLine();
          System.out.println(line);
          clientOutput_.println("Message recu");
          clientInput_.close();
          clientOutput_.close();
     
        } catch(Exception e) { } // ignore
      }
    }
    J'ai testé le programme d'abord avec une adresse loopback comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    D:\Documents and Settings\maxime\Desktop\Test>java Client 127.0.0.1 1000
    Connecte sur /127.0.0.1:1000
    Message recu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    D:\Documents and Settings\maxime\Desktop\Test>java Server 1000
    Ceci est un test
    Ensuite j'ai tenté de me connecter à un serveur nommé solare mais là, la connexion échoue alors
    que le ping donnait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    D:\Documents and Settings\maxime\Desktop\Test>ping solare
     
    Envoi d'une requête 'ping' sur solare.fr.intra.net [101.1.3.31] avec 32 octets d
    e données*:
     
    Réponse de 101.1.3.31*: octets=32 temps<1ms TTL=127
    Réponse de 101.1.3.31*: octets=32 temps<1ms TTL=127
    Réponse de 101.1.3.31*: octets=32 temps<1ms TTL=127
    Réponse de 101.1.3.31*: octets=32 temps<1ms TTL=127
     
    Statistiques Ping pour 101.1.3.31:
        Paquets*: envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
    Durée approximative des boucles en millisecondes :
        Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
    Mais quand je lance le serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    D:\Documents and Settings\maxime\Desktop\Test>java Server 1000

    Puis le client, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    D:\Documents and Settings\maxime\Desktop\Test>java Client 101.1.3.31 1000
    Exception in thread "main" java.net.ConnectException: Connection refused: connec
    t
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.PlainSocketImpl.doConnect(Unknown Source)
            at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
            at java.net.PlainSocketImpl.connect(Unknown Source)
            at java.net.SocksSocketImpl.connect(Unknown Source)
            at java.net.Socket.connect(Unknown Source)
            at java.net.Socket.connect(Unknown Source)
            at java.net.Socket.<init>(Unknown Source)
            at java.net.Socket.<init>(Unknown Source)
            at Client.main(Client.java:23)

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Le fait que tu réussisses à pinguer ton serveur sur le port 1000 ne prouve pas que ce dernier accepte les connexions sur ce port.

    Dans ton programme, le problème vient apparemment du fait que ton serveur à refusé la connexion de ton socket.

    Vérifie donc son firewall, si une connexion sur ce port ne nécessite pas une identification, si ce port est ouvert...
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

Discussions similaires

  1. Un probleme de connexion entre deux serveurs
    Par altira dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/05/2011, 21h02
  2. probleme de connexion entre 2 serveures SQL 2005
    Par SILO dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/04/2007, 15h46
  3. [interbase5] problem au connexion via le serveur
    Par inconu dans le forum InterBase
    Réponses: 1
    Dernier message: 31/07/2005, 00h24
  4. Problemes de connexion Serveur Interbase
    Par OasisMan dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/03/2005, 08h39
  5. Probleme de connexion au serveur Hotmail
    Par black is beautiful dans le forum Développement
    Réponses: 8
    Dernier message: 17/09/2004, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo