J’essaie de mettre en place une connexion TCP, tout fonctionne bien du côté du serveur mais lorsque je lance le programme client (depuis l’ordinateur client), j’obtiens l’erreur suivante :
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:189)
at TCPClient.main(TCPClient.java:12)
J’ai essayé de changer le numéro de socket au cas où il serait utilisé mais en vain, est-ce que quelqu’un sait ce qui cause cette erreur et comment la corriger.
Le code du serveur :
import java.io.*;
import java.net.*;
class TCPServer {
public static void main(String argv[]) throws Exception {
String fromclient;
String toclient;
ServerSocket Server = new ServerSocket(9000);
System.out.println("Server En attente un client sur le port 9000");
while (true) {
Socket connected = Server.accept();
System.out.println(" THE CLIENT" + " " + connected.getInetAddress()
+ ":" + connected.getPort() + " EST CONNECTÉ ");
BufferedReader br1 = new BufferedReader(
new InputStreamReader(System.in));
BufferedReader br2 = new BufferedReader(
new InputStreamReader(connected.getInputStream()));
PrintWriter outToClient = new PrintWriter(
connected.getOutputStream(), true);
while (true) {
System.out.println("ENVOI(Tapez Q ou q pour quitter):");
toclient = br1.readLine();
if (toclient.equals("q") || toclient.equals("Q")) {
outToClient.println(toclient);
connected.close();
break;
} else {
outToClient.println(toclient);
}
fromclient = br2.readLine();
if (fromclient.equals("q") || fromclient.equals("Q")) {
connected.close();
break;
} else {
System.out.println("RECU:" + fromclient);
}
}
}
}
}
Le code client :
import java.io.*;
import java.net.*;
class TCPClient {
public static void main(String argv[]) throws Exception {
String FromServer;
String ToServer;
Socket clientSocket = new Socket("localhost", 9000);
BufferedReader br1 = new BufferedReader(new InputStreamReader(
System.in));
PrintWriter outToServer = new PrintWriter(
clientSocket.getOutputStream(), true);
BufferedReader br2 = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
while (true) {
FromServer = br2.readLine();
if (FromServer.equals("q") || FromServer.equals("Q")) {
clientSocket.close();
break;
} else {
System.out.println("RECU:" + FromServer);
System.out.println("ENVOI(Tapez Q ou q pour quitter):");
ToServer = br1.readLine();
if (ToServer.equals("Q") || ToServer.equals("q")) {
outToServer.println(ToServer);
clientSocket.close();
break;
} else {
outToServer.println(ToServer);
}
}
}
}
}