Bonjour,
Je suis débutant en programmation java et j'ai pour projet la réalisation d'un chat en utilisant les RMI.
Le problème qui se pose c'est que n'arrive pas à envoyer le message aux autres clients connectés.
Voici le code source des classes :
Côté client :
Implémentation :
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 import java.rmi.*; import java.io.*; public class cltEcho { public static void main(String arg[]){ BufferedReader in=null; String msg=null; String reponse=null; interEcho serveur=null; try{ // ouverture du flux clavier in=new BufferedReader(new InputStreamReader(System.in)); // localisation du service serveur=(interEcho) Naming.lookup("srvEcho"); // boucle de lecture des msg à envoyer au serveur d'écho System.out.print("Message : "); msg=in.readLine().toLowerCase().trim(); while(! msg.equals("/quit")){ // envoie du msg au serveur et réception de la réponse reponse=serveur.echo(msg); // suivi System.out.println("Réponse serveur : " +reponse); // msg suivant System.out.println("Message : "); msg=in.readLine().toLowerCase().trim(); } System.exit(0); } catch (Exception e){ System.err.println("Erreur : " +e); System.exit(2); } } }
Côté serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 import java.rmi.*; // l'interface distante public interface interEcho extends Remote{ public String echo(String msg) throws java.rmi.RemoteException; public String broadcast(String msg) throws java.rmi.RemoteException; }
Je dois avouer que je suis perdu dans ce langage... Si vous pouvez m'éclairer et expliquer simplement j'en serais ravis.
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 import java.rmi.*; import java.rmi.server.*; import java.net.*; // classe implémentant l'écho distant public class srvEcho extends UnicastRemoteObject implements interEcho{ String message=null; int version=0; // constructeur public srvEcho() throws RemoteException{ super(); } //méthode réalisant l'écho public String echo(String msg) throws RemoteException{ version++; message=msg; return "[" +msg+ "]"; } public String broadcast(String msg) throws RemoteException{ return message; } // création du service public static void main (String arg[]){ try{ java.rmi.registry.LocateRegistry.createRegistry(1099); srvEcho serveurEcho=new srvEcho(); Naming.rebind("srvEcho",serveurEcho); System.out.println("Serveur d'écho prêt"); } catch (Exception e){ System.err.println("Erreur " + e + " lors du lancement du serveur d'écho"); } } }
Merci d'avance pour votre aide.
Partager