Bonjour,
J'ai écris les 2 classes suivantes pour tester une connexion client serveur.
Client.java :
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 //-------------// // 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); } }
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
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 } }
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 recuEnsuite j'ai tenté de me connecter à un serveur nommé solare mais là, la connexion échoue alors
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2D:\Documents and Settings\maxime\Desktop\Test>java Server 1000 Ceci est un test
que le ping donnait :
Mais quand je lance le serveur :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2D:\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)
Partager