Salut,
Je débute la programmation de sockets en JAVA. J'ai 3 classes:
ServeurTCP.java
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
| //package package_TCP;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
public class ServeurTCP {
static int hostport = 8532;
static public void initServeur(int port)
{
try
{
// Création de la socket : écoute sur l'une des @IP de la machine
// 10 connexions max sont autorisées
InetAddress loc=InetAddress.getLocalHost();
ServerSocket listen_socket=new ServerSocket(port,10,loc);
// Boucle infinie d'interception des requêtes de connexion
for(;;)
{
Socket socket=listen_socket.accept();
Thread thread= new TraitementRequete(socket);
thread.start();
}
}
catch(Exception e)
{
System.err.println("Erreur: " + e);
}
}
public static void main (String[] args) {
// TODO Auto-generated method stub
initServeur(hostport);
}
} |
TraitementRequete.java
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
| //package package_TCP;
//import java.io.InputStream;
//import java.io.OutputStream;
import java.io.*;
import java.net.Socket;
public class TraitementRequete extends Thread {
Socket socket;
public TraitementRequete(Socket socket) { this.socket = socket; }
public void run() {
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream out = new PrintStream(socket.getOutputStream());
String message = in.readLine();
out.println(message);
socket.close();
/* InputStream flux_entree=socket.getInputStream();
OutputStream flux_sortie = socket.getOutputStream(); */
// réception : flux_entree.read(byte[])
// envoi : flux_sortie.write(byte[])
}
catch(Exception e)
{
System.err.println("Erreur: " + e);
}
}
} |
ClientTCP.java
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 48 49
| //package package_TCP;
import java.net.InetAddress;
import java.net.Socket;
/* import java.io.InputStream;
import java.io.OutputStream; */
import java.io.*;
//import org.omg.CORBA.portable.InputStream;
//import org.omg.CORBA.portable.OutputStream;
public class ClientTCP {
static int hostport = 8532;
static String hostname;
static public void connexionServeur(String hostname,int hostport)
{
try
{
// Récupération de l'adresse IP du serveur
InetAddress svrAddr=InetAddress.getByName(hostname);
// Création d'une socket TCP vers le port du serveur
Socket socket=new Socket(svrAddr,hostport);
// Récupération des flux d'entrée/sortie de la socket
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream out = new PrintStream(socket.getOutputStream());
//out.println(argv[1]);
System.out.println(in.readLine());
/* OutputStream flux_sortie = socket.getOutputStream();
InputStream flux_entree = socket.getInputStream(); */
// envoi : flux_sortie.write(byte[])
// réception : flux_entree.read(byte[])
}
catch(Exception e)
{
System.err.println("Erreur: " + e);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//hostname = args[0];
hostname = "localhost";
connexionServeur(hostname,hostport);
}
} |
mais lorsque je lance l'exécution, j'obtiens cette erreur
Erreur: java.net.ConnectException Connection refused Connect
je ne comprends pourquoi?
Merci beaucoup d'avance pour votre aide.
Partager