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 :

[Socket Exception] Broken Pipe


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Par défaut [Socket Exception] Broken Pipe
    Bonjour à tous !

    J'ai un soucis sur mon appli java.

    Je m'explique :

    - J'ai une appli qui tourne sous Windows Xp et qui "parle" en TCP sur le port 5004

    - J'ai ensuite mon appli java, qui tourne sous Linux. Cette appli java créé X Threads (on va dire X = 4).

    Mes 4 Threads font un truc du style :

    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
     
     
    protected Socket _socketInstr;
     
    run()
    {
      _socketInstr = new Socket(getData().getHost(), 5004);
     
     while(j'en ai pas marre)
    {
     _socketInstr.read();
     _socketInstr.write();
     blablabla
     
    }
    }
    C'est vraiment du résumé.
    En gros chaque Thread a son propre objet java Socket mais qui parle au même host et sur le même port.

    Bref par moment je me retrouve avec des Exceptions : SocketException : Broken Pipe sur des opérations de lecture/écriture sur la socket.

    N'y connaissant rien, je me suis dit, on va juste créer un objet java Socket pour les 4 threads. Avec cette méthode, je n'ai plus de problèmes de Broken Pipe, mais je me demande qd même pourquoi ?

    Je rajoute également que, j'ai essayé de faire dialoguer 4 Threads avec une autre appli (tournant ce coup ci sous linux et non pas windows xp) sur le même port, et j'ai pas constaté de pb de Broken pipe...

    Si vous avez des remarques/pistes n'hésitez pas ^^

    Merci

  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 : 45
    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
    D'abord, de quel coté as-tu l'exception, coté client ou coté serveur? Le message indique qu'une des deux parties à fermé la socket, pour une raison ou une autre, mais que l'autre partie s'obstine à essayer d'envoyer des données. Les raisons qui peuvent faire fermer le tuyaux

    -> appel à close() sur la socket, dans ce cas, se mettre d'accord sur un protocol pour fermer de chaque coté!
    -> garbage collecting par la jvm. même solution qu'au dessus
    -> l'os ou un routeur faisant du NAT ou un firewall qui ferme une socket restée inactive trop longtemps. Activer le keepalive dans les option de la socket si t'as besoin de socket qui dorment pendant plusieurs heures.

Discussions similaires

  1. Exception Broken pipe
    Par yarf dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 08/04/2020, 17h54
  2. [JDBC] Erreur java.sql.SQLException: Io exception: Broken pipe pool tomcat
    Par lbd_9C dans le forum Interfaces de programmation
    Réponses: 0
    Dernier message: 29/05/2008, 18h00
  3. Broken Pipe & Sockets
    Par |PaRa-BoL dans le forum POSIX
    Réponses: 5
    Dernier message: 18/01/2007, 10h04
  4. Problème Socket Exception
    Par Royd938 dans le forum Langage
    Réponses: 6
    Dernier message: 28/11/2006, 11h18
  5. Erreur Broken Pipe + Mysql + Tomcat
    Par akademiks dans le forum Hibernate
    Réponses: 1
    Dernier message: 04/09/2006, 16h33

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