Bonjour,
Pouvez-vous me dire s'il vous plaît comment je permets à un serveur d'écouter sur deux ports ainsi de communiquer entre deux machines distantes. Je travaille sur les systèmes distribués et mon but est de communiquer entre deux machines distantes en utilisant le modèle client-serveur tel que
si par exemple :
serveur : " bonjour "
client : if msgServeur = bonjour
then
repondre : cv
else
client : bonjour
voici le code source et j'ai developpé mais j'arrive pas à communiquer les deux machines :
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class serveurrrr { public static void main(String[] test) { final ServerSocket serveurSocket ;//accepte les connexion venues des clients final Socket clientSocket ; //permet de se connecter à la machine distante final BufferedReader in; // lire le texte reçu à partir de l'emetteur final PrintWriter out; // envoyer le texte saisi final Scanner sc =new Scanner(System.in); // lire les entrées clavier try { serveurSocket = new ServerSocket(180); clientSocket = serveurSocket.accept(); out = new PrintWriter(clientSocket.getOutputStream()); in = new BufferedReader (new InputStreamReader (clientSocket.getInputStream())); Thread envoi= new Thread(new Runnable() { String msg; @Override public void run() { while(true){ msg = sc.nextLine(); out.println(msg); out.flush(); } } }); envoi.start(); Thread recevoir= new Thread(new Runnable() { String msg ; @Override public void run() { try { msg = in.readLine(); //tant que le client est connecté while(msg!=null){ System.out.println("Client : "+msg); msg = in.readLine(); } //sortir de la boucle si le client a déconecté System.out.println("Client déconecté"); //fermer le flux et la session socket out.close(); clientSocket.close(); serveurSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }); recevoir.start(); }catch (IOException e) { e.printStackTrace(); } } }merci infiniment d'avance ))
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.util.Scanner; import java.util.*; public class client2 { public static void main(String[] args) { final Socket clientSocket; final BufferedReader in; final PrintWriter out; final Scanner sc = new Scanner(System.in);//pour lire à partir du clavier try { /* * les informations du serveur ( port et adresse IP ou nom d'hote * 169.254.2.144 est l'adresse local de la machine */ clientSocket = new Socket("169.254.2.44",180); //flux pour envoyer out = new PrintWriter(clientSocket.getOutputStream()); //flux pour recevoir in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); Thread envoyer = new Thread(new Runnable() { String msg ; // String msggg ; String msg1 = in.readLine(); @Override public void run() { while(true){ if ( msg1.equals("bonjour")) { msg.equals( " cv bien et toi") ; // out.println("client : cv bien et toi ! "); } else { msg.equals( "merci") ; } //out.println("client : bonjour serveur ") ; msg = sc.nextLine(); out.println(msg); out.flush(); } } }); envoyer.start(); Thread recevoir = new Thread(new Runnable() { String msg; @Override public void run() { try { msg = in.readLine(); while(msg!=null){ System.out.println("Serveur : "+msg); msg = in.readLine(); } System.out.println("Serveur déconecté"); out.close(); clientSocket.close(); } catch (IOException e) { e.printStackTrace(); } } }); recevoir.start(); } catch (IOException e) { e.printStackTrace(); } } }
Partager