IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[RMI] Information envoyée directement au client sans faire de rebind


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Points : 48
    Points
    48
    Par défaut [RMI] Information envoyée directement au client sans faire de rebind
    Bonjour,

    Etant en train d'effectuer une communication RMI, un client scrutant en permanence l'association que le serveur a effectué.

    Voici le code client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Registry registry = LocateRegistry.getRegistry();
    IDPanierFactFinder test_RMI2 =  (IDPanierFactFinder) Naming.lookup("rmi://172.16.142.140:10005/DPanierFactFinder");
     
    while(true) {
    test_RMI2 =  (IDPanierFactFinder) Naming.lookup("rmi://172.16.142.140:10005/DPanierFactFinder");
    System.out.println(test_RMI2.getLigne());
    }
    Voici le code 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
    19
    20
    21
    22
     
    System.setProperty("java.rmi.server.hostname", "172.16.142.140");
     
                Registry reg = LocateRegistry.createRegistry(10005);
    reg.bind("DPanierFactFinder", dPanierFact);
                dPanierFact.setLigne("allloiiiiiii");    
                System.out.println("eeeeeeeeeeeerrrrrrrtttttttttt"+dPanierFact.getLigne());
     
    int i = 0;
                while(true){
                 if(i==0){
                 dPanierFact.setLigne("allloiiiiiii");    
                 System.out.println("eeeeeeeeeeeerrrrrrrtttttttttt"+dPanierFact.getLigne());
                 reg.rebind("DPanierFactFinder", dPanierFact);
                 i++;
                 }
                 if(i == 1){
                     i++;
                 dPanierFact.setLigne("alllotttttttt");    
                 System.out.println("eeeeeeeeeeeerrrrrrrtttttttttt"+dPanierFact.getLigne());
                      }
                 }
    J'aimerais dans cet exemple que lorsque i équivaut à 1, l'association au niveau du serveur ne soit pas modifiée...
    J'ai essayé avec unbind mais puisque le client scrute en permanence l'association une exception est levée.
    J'ai essayé avec deux bind mais toujours une exception...

    L'affichage au niveau client est bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    alllotttttttt
    alllotttttttt
    ....
    ......
    alllotttttttt
    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Le problème est résolu et pourrait servir pour d'autres personnes.

    Lorsque que l'on fait un rebind sur un pointeur, quelquesoit le changement effectué sur le pointeur le changement sur le serveur RMI est pris en compte.

    Il faut donc mettre dans le rebind une variable ou une pile contenant une variable.

    L'utilisation d'une pile permet d'éviter que le client ne rate des valeurs sur le serveur.
    Il faut incrémenter un compteur à chaque fois que l'on empile du côté du serveur et l'on observe le serveur du côté client en décrémentant le compteur à valeurs lues.

    Cordialement,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. est-ce interdit de faire de la contre pub ou du démarchage direct de clients ?
    Par Ymer Leahcim dans le forum Humour Informatique
    Réponses: 17
    Dernier message: 08/07/2015, 17h59
  2. Réponses: 3
    Dernier message: 31/10/2012, 10h56
  3. Renvoyer le résultat a un client sans l'afficher directement
    Par zemzoum89 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/11/2010, 09h45
  4. Faire un tar envoyé directement sur FTP
    Par gifffftane dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 29/06/2008, 09h24
  5. Réponses: 4
    Dernier message: 06/03/2007, 06h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo