Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1344 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Fonctionnement de 2 clients dans une architecture RMI

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonctionnement de 2 clients dans une architecture RMI

n°1342127
marc90
Posté le 08-04-2006 à 16:38:53  profilanswer
 

Bonjour
 
Lorsqu'on veut faire fonctionner 2 clients  dans une architecture avec RMI:
 doit-on créer 2 classes clients?
 est-ce que les 2 clients se connecte à la même instance d'interface ?
   ex:        CountRmi cr = (CountRmi) java.rmi.Naming.lookup("rmi://localhost/CountRmi1" );
                CountRmi cr2 = (CountRmi) java.rmi.Naming.lookup("rmi://localhost/CountRmi1" );
 
               avec CountRmi comme interface


Message édité par marc90 le 08-04-2006 à 17:03:00
mood
Publicité
Posté le 08-04-2006 à 16:38:53  profilanswer
 

n°1342707
rnoizet
Posté le 10-04-2006 à 04:51:27  profilanswer
 

Salut,
 
Pas forcément, tu peux spécifier dans le message à quel client s'adresse le serveur.

n°1342745
marc90
Posté le 10-04-2006 à 09:58:46  profilanswer
 

Auriez vous un exemple avec une classe serveur, une classe client, une interface, une classe implémentation de l'interface avec fonctionnement simultané de 2 clients?

n°1343228
rnoizet
Posté le 10-04-2006 à 16:24:13  profilanswer
 

:sarcastic:  Tu veux pas une pipe aussi ?
 

Code :
  1. public interface MessageInterface
  2. {
  3.     public String receive() throws RemoteException;
  4.     public int getDestNumber();
  5. }


Code :
  1. public class Message implements MessageInterface
  2. {
  3.     private String text;
  4.     private int destNumber;
  5.     public Message(String text, int destNumber) throws RemoteException
  6.     {
  7.         this.text = text;
  8.         this.destNumber = destNumber;
  9.     }
  10.     public String receive() throws RemoteException
  11.     {
  12.         return text;
  13.     }
  14.      
  15.     public int getDestNumber()
  16.     {
  17.         return destNumber;
  18.     }
  19. }


Code :
  1. public class Client
  2. {
  3.     public Client(int clientNumber) throws Exception
  4.     {
  5.         MessageInterface message = (MessageInterface) Naming.lookup("localhost/MessagePort" );
  6.        
  7.         if(message.getDestNumber() == clientNumber)
  8.             System.out.println(message.receive());
  9.     }
  10.     public static void main(String[] args)
  11.     {
  12.         try
  13.         {
  14.              new Client(Integer.parseInt(args[0]));
  15.         }
  16.         catch(Exception e)
  17.         {
  18.           System.out.println ("Le client veut pas : " + e);
  19.         }
  20.     }
  21. }


Ca m'étonnerait pas que ça compile pas, mais c'est un début.
Faut chercher par toi même un peu aussi des fois quand même (ou montrer le code que t'as déjà écrit).


Message édité par rnoizet le 10-04-2006 à 16:29:19
n°1343431
marc90
Posté le 10-04-2006 à 18:34:59  profilanswer
 

Merci c'est interessant, par contre il manque une classe serveur.

n°1343463
rnoizet
Posté le 10-04-2006 à 19:34:10  profilanswer
 

Oui.
Ecris la.

n°1343779
brasseld
Posté le 11-04-2006 à 09:20:12  profilanswer
 

Et fais une recherche google aussi car on trouve beaucoup d'exemples simples concernant le RMI sur le net...

n°1343780
marc90
Posté le 11-04-2006 à 09:23:48  profilanswer
 

En fait j'en ai trouver mais il ne mettait pas en evidence le fonctionnement de 2 clients

n°1343784
brasseld
Posté le 11-04-2006 à 09:25:33  profilanswer
 

Et bien quand tu sais le faire pour un, tu sais pour deux...

n°1343825
marc90
Posté le 11-04-2006 à 10:11:34  profilanswer
 

En fait le client ne fonctionnait pas beaucoup il envoyait juste un entier au serveur et s'arettait, du coup pour en faire fonctionner 2 en même temps, pas terrible.
 
Sinon je voulais une confirmation: pour faire communiquer un client et un serveur il faut bien passer par la classe implementant l'interface, avec une variable dans cette classe, une méthode permettant d'affecter une valeur à cette variable et une autre methode permettant de récuperer la valeur de cette variable.

mood
Publicité
Posté le 11-04-2006 à 10:11:34  profilanswer
 

n°1343831
brasseld
Posté le 11-04-2006 à 10:18:09  profilanswer
 

Le client travaille sur un objet distant qui implémente une interface que tu as écris.Cette interface étend elle-même l'interface Remote (je ne suis plus sûr du nom). Cette interface définiera les méthodes qui seront accessibles à distance.

n°1343854
marc90
Posté le 11-04-2006 à 10:27:59  profilanswer
 

Par exemple dans l'interface feuilleCahier
 
On a les methodes
 
public void ecrireCahier(String motEcrit)
public String lireCahier()
 
 
 
 
Et dans la classe de l'implementation de l'interface
 
public class feuilleCahierImpl{
 
private String motCahier;
 
public feuilleCahierImpl(){}
 
public void ecrireCahier(String motEcrit){
 motCahier = motEcrit;
}
 
public String lireCahier(){
 return motCahier;
}


Message édité par marc90 le 11-04-2006 à 10:29:49
n°1343871
brasseld
Posté le 11-04-2006 à 10:47:26  profilanswer
 

Nan c'est pas bon, je vois pas les héritages et les implémentations...
http://perso.wanadoo.fr/jm.doudoux [...] hap024.htm

n°1343956
marc90
Posté le 11-04-2006 à 11:50:40  profilanswer
 

Non mais j'ai juste fait un exemple sans le client et le serveur.
 

n°1343971
brasseld
Posté le 11-04-2006 à 12:04:11  profilanswer
 

De toute maniére je vais te laisser car tu n'as pas l'air de chercher beaucoup de ton côté... Pourtant c'est la meilleure façon d'apprendre... :o


Message édité par brasseld le 11-04-2006 à 12:04:44
n°1344039
marc90
Posté le 11-04-2006 à 13:15:04  profilanswer
 

Si puisque hier j'ai reussi a ecrire sur le client et c est le serveur qui affiche ce que j a ecrit. Mais en faisant de la même facon que dans l exemple que j ai montré. La seule chose que je voulais savoir est si c'était la bonne solution

n°1346055
marc90
Posté le 13-04-2006 à 14:29:42  profilanswer
 

Maintenant mon problème est de rendre accessible une interface graphique à chaque client. doit-on créer l'interface au niveau de chaque client ou la créer au niveau du serveur et la rendre accessible aux clients?

n°1346059
marc90
Posté le 13-04-2006 à 14:30:16  profilanswer
 

L'interface graphique est une JFrame.

n°1346612
brasseld
Posté le 14-04-2006 à 08:22:47  profilanswer
 

Tu t'attaques à un peu plus compliqué tout de suite. Moi j'ai déjà fais des GUI sur le client avec des transferts des informations entre Client et Serveur via RMI. Il me semble avoir utiliser des objets Observer Observable en Remote....
 
ps : édites tes message !!!

n°1346618
marc90
Posté le 14-04-2006 à 08:38:51  profilanswer
 

En fait j'arrives bien à comprendre qu'on puisse récupérer une variable style INT ou STRING au niveau du client, par contre j'ai plus de mal a capter qu'on puisse faire la même chose avec un objet.
 
L'objectif final étant que chaque client est accès à la même interface graphique et une modifiction de celle-ci par un client se voit depuis l'autre client.

n°1346619
brasseld
Posté le 14-04-2006 à 08:42:18  profilanswer
 

Donc c'es tce que je dis, il faut que tu utilises des objets RemoteObservable et Observer (facilement trouvable sur le net, mais tu peux les écrire par toi-même, c'est pas bien compliqué). Et lorsque tu souhaites que ta méthode retourne un objet, alors la seule contrainte sur cet objet et qu'il implémente l'interface Serializable.

n°1346739
marc90
Posté le 14-04-2006 à 11:14:33  profilanswer
 

Voilà ce que j'ai trouvé à ce sujet là.
http://www.javafr.com/codes/OBSERV [...] 35703.aspx
 
Quelqu'un aurait-il déjà fait un jeu , style Echec Dame ou Puissance 4 en Client-Serveur utilisant RMI?
 


Message édité par marc90 le 17-04-2006 à 10:23:15
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Fonctionnement de 2 clients dans une architecture RMI

 

Sujets relatifs
RMI Stub/Skeleton[ASP]Probleme fonctionnement moteur de recherche
Exemple de RMIRMI et ClassCastException
Fonctionnement des liens vue par google ??RMI -> obligé d'avoir la même version de JVM sur clients et serveur ?
[ SCRIPTS ] Comment détecter une architecture 32 bits??[RESOLU][SH - SED] Fonctionnement très bizarre
serveur contacte un des clients 
Plus de sujets relatifs à : Fonctionnement de 2 clients dans une architecture RMI


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR