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] Détecter dans le client que le serveur s'est éteint


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut [RMI] Détecter dans le client que le serveur s'est éteint
    Bonjour,
    J'ai une application RMI avec un serveur et deux clients qui se connectent à ce serveur grâce à RMI.

    Le serveur est donc lancé, ensuite les clients sont lancés et connectés au serveur.

    J'aimerais, que si le serveur est éteint (donc que l'application serveur est arrêtée) avant les clients, les clients détectent qu'ils ne sont plus connectés et affichent par exemple un message.

    Le client détectera cela qu'à l'appel d'une méthode du serveur (une RemoteException) sera lancée. Donc si le client n'appelle pas de méthode pendant un long moment, le client ne détectera pas qu'il n'est plus connecté au serveur...

    La seule façon que j'ai trouvé, est d'avoir un timer dans mon client qui toutes les secondes appelle une méthode du serveur pour voir s'il n'y a pas de RemoteException lancée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
            int delay = 1000;
            ActionListener taskPerformer = new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent evt) {
                    try {
                         appelMethodeServeur();
                    } catch (RemoteException ex) {
                       System.out.println("Le serveur n'est plus accessible");
                    }
                }
            };
            timer = new Timer(delay, taskPerformer);
            timer.start();
    Cela me semble assez lourd... Avez-vous une autre solution?

    Merci d'avance et bonne journée !

  2. #2
    Membre Expert
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Par défaut
    Utilisé la méthode du "ping", comme tu le fais est la plus simple.

    Tu peux aussi faire envoyer un message à tous les clients lors de la fermeture du serveur (ce qui implique que le serveur possède une référence vers tous les clients). Ainsi, même si un client n'interagit pas avec le serveur pendant longtemps, il sera notifié de son extinction.

Discussions similaires

  1. Authentification Windows dans application Client/Serveur
    Par dfgs83 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/07/2010, 02h54
  2. Réponses: 3
    Dernier message: 22/04/2010, 23h34
  3. Recuperation de l'adresse du client par le serveur avec RMI
    Par pointeur dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 23/03/2010, 14h00
  4. Réponses: 6
    Dernier message: 03/03/2010, 16h54
  5. Réponses: 2
    Dernier message: 26/12/2006, 19h36

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