Bonjour,
J’utilise la technologie RMI sur des PC distants. En réalité, pour le moment, j’ai un PC qui fait office de serveur et 6 autres PC qui font office de client.
Pour le moment, tout fonctionne bien puisque je ne fais qu’envoyer des 'demandes' dans le sens client -> serveur.
Un peu de code.
Mes clients :
Mon 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
15
16
17
18 public void init() { // Mise en place du Security Manager if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } try { // Récupération des propriétés du RMI remote = Naming.lookup("rmi://" +"192.168.1.100"+ "/InformationRMI"); } catch (MalformedURLException e) { e.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } catch (NotBoundException e) { e.printStackTrace(); } }
Maintenant, je voudrais pouvoir envoyer un message à mes PC client. Mais là, je coince.
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 public void init() { try { // Mise en place du Security Manager if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } // Permet de démarrer automatiquement le rmiregistry LocateRegistry.createRegistry(1099); Information informationImpl = new InformationImpl(); String url = "rmi://" +"192.168.1.100"+ "/InformationRMI"; // Enregistrement de l'objet avec l'url Naming.rebind(url, informationImpl); } catch (RemoteException e) { e.printStackTrace(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } }
Pour être plus clair, je souhaite afficher un texte sur les écrans des PC client. Une difficulté s’ajoute car je veux pouvoir envoyer un texte à un PC client bien précis et pas à tout les PC client à la fois.
Après quelques recherches sur le net, je pense devoir m’orienter vers la procédure ‘callback’ (bien que dans mon cas, je ne réponds pas à un appel d'un client), mais je ne vois pas comment faire.
- Comment récupérer les adresses IP de mes clients ;
- Comment faire au niveau du serveur pour renvoyer un texte (String) à un client --> car ma classe 'InformationImpl' implémentant l'interface Information n'est pas codée dans mon serveur);
Quelqu’un peut-il m’aider ?
Merci d’avance.
Partager