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

 Java Discussion :

Comment bien gérer les déconnections d'un serveur multi-thread?


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut Comment bien gérer les déconnections d'un serveur multi-thread?
    Bonjour tout le monde.

    Voilà la situation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void run(){
    	try { 
    		while(true){
    			/*Hashtable*/connection.put(serverSocket.accept());
    		}
    	}catch (Exception e) { System.err.println(e.getMessage()); }
    }
    Lorsque le client se déconnecte un exception est levée.

    J'imagine que pour gérer les déconnections et pouvoir dire aux clients en ligne:
    { Le client "machintruc" vient de se perdre en route } il faut le faire dans le catch?

    Mais comment?
    Y a t'il moyen de savoir quel client est parti depuis l'exception e?

    Sinon comment est-ce que Mac Gyver aurai fait lui qui est si malin le bougre?
    Merci de votre incoercible diligence.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    non, ton accept() ne fait qu'accepter ma connexion. A partir de là, tout évènement inattendu sur cette connexion (déconnexion, coupure par le client distant, caca dans la ligne, timeout, reset) ne lèvera un exception que lors des appels de méthode concernées (typiquement lecture / écriture sur la socket).

    Donc pour choper ça, c'est à faire dans le catch de tes méthodes de lecture / écriture, qui tournent probablement dans un thread à part si t'as fait quelque chose de ces connexion.

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

Discussions similaires

  1. Comment bien gérer les variables de session ?
    Par rad_hass dans le forum ASP.NET
    Réponses: 4
    Dernier message: 29/04/2008, 10h14
  2. Réponses: 3
    Dernier message: 29/05/2007, 16h50
  3. [Include/Require] Comment bien gérer les chemins ?
    Par Wookai dans le forum Langage
    Réponses: 1
    Dernier message: 11/04/2007, 09h11
  4. Comment bien gérer les utilisateurs multiples
    Par Vesta dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/06/2006, 08h48
  5. [JDesktopPane] Comment bien gérer les JInternalFrame ?
    Par calogerogigante dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 05/04/2006, 12h45

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