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)