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

avec Java Discussion :

Comment gérer un broken pipe


Sujet :

avec Java

  1. #1
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut Comment gérer un broken pipe
    Bonjour à tous,

    J'ai dans mon application une communication avec un serveur. Ce serveur peut parfois fermer la connexion pour X raisons. Coté Java je reçois donc une exception broken pipe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
    	this.client.getWriter().write(buffer);
    	this.client.getWriter().flush();
    } catch(IOException e) {
    	this.client.close();
    }
    J'essai d'écrire mais la connection à été fermé par le serveur , j'ai donc l'exception broken pipe. De là j'appelle la methode de fermeture de mon client réseau :
    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
     
    public void close()
    {
    	if(this.socket != null && !this.socket.isClosed()
    	{
    		try{
    			this.writer.write(bufferCloseConnection);
    			this.writer.flush();
    			this.writer.close();
    			this.reader.close();
    			this.socket.close();
    		} catch(IOException e) {
    			e.printStacktrace();
    		}
    	}
    }
    Or cette méthode de fermeture envoi normalement un message au serveur pour l'informer que l'on ferme la connexion. Message qui ne peut être envoyé à cause de l'exception précédente.

    D'ou ma question , comment gérer au mieux cette exception broken pipe ? Devrais je plutôt faire une seconde méthode de fermeture qui ne serait appelée que dans le cas ou la fermeture est non demandée par le client ?

    Est il nécessaire de procéder au close() du writer/reader et de la socket sachant que la connexion à été fermé par le serveur ?

    merci
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    mettez les opération sur le writer dans une try/catch séparé. De même séparez vos close() dans des try/catch séparé, il ne faut pas qu'un close en échec empeche de fermer le reste

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

Discussions similaires

  1. Comment gérer plusieurs langues ?
    Par InterSQL dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 27/02/2004, 16h12
  2. Comment gérer plusieurs icones dans son exécutable ?
    Par declencher dans le forum Langage
    Réponses: 5
    Dernier message: 15/10/2003, 10h49
  3. Comment gérer ma carte réseau en ASM
    Par will1974 dans le forum Assembleur
    Réponses: 6
    Dernier message: 23/09/2003, 17h08
  4. Comment gérer la touche echap ?
    Par Adrael dans le forum C
    Réponses: 28
    Dernier message: 11/07/2003, 13h15
  5. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 09h44

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