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 :

Probleme avec les tubes


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut Probleme avec les tubes
    Voici le code d'initialisation des pipes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PipedWriter pw = new PipedWriter();
    PipedReader pr = new PipedReader(pw);

    Voici le code de l'ecrivain dans le pipe
    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
     
    for(int i = 0 ; i < procThread.size(); i++)
    		{
    			ProcessusThread proc = (ProcessusThread)procThread.get(i);
    			System.out.println("eee "+proc.nomproc );
    			if(proc.nomproc.equals("Accompagner clients"))
    			{
    				pw = (PipedWriter)proc.output.get(0);
    				try
    				{
    					System.out.println(pw);
    					pw.write(1);
    					pw.flush();
     
    				}
    				catch(IOException e)
    				{
    					e.printStackTrace();
    				}
    			}
     
    		}

    et voici le code du lecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    for(int i = 0 ; i < input.size() ; i++)
    			{
    				PipedReader pr = (PipedReader)input.get(i);
    				 j = pr.read();
    				// System.out.println("j = "+j);
    				 if(j == 1)System.exit(0);
     
    			}




    Mais ca ne marche pas si quelqun a une explication please merci !!

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    tu instancie une seule fois pw et pr ou tu instancies pour chaque thread ?

    [EDIT] pourrais tu être plus précis en ce qui concerne cette phrase :
    ça ne marche pas

  3. #3
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut
    j'instancie plusieurs tube par thread. En fait j'essai de mettre en place un system de communication entre plusieurs thread (disposer en graphe).
    J'instancie donc un tube pour chaque suivant d'un thread(l'entrée du tube dans le thread courant et la sortie dans le thread fils).

    Ce qui ne marche pas c'est que soit pw.write(1) n'envoie rien (mais je pense que ce n'est pas ca vu qu'il n'y a pas de IOException)
    soit c'est j= pr.read() qui ne lit rien mais la encore il n'y a pas d'exception. De plus d'apres l'api si il n'y a rien a lire dans le tube, pr.read() devrai retourner -1 mais dans mon cas j = pr.read() reste toujours a la valeur initial de j = 0 (comme si l'instruction j = pr.read ne servait a rien).

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    bon alors je n'ai jamais utilisé ça donc je lance des trucs un peu au hasard. On ne sait jamais.

    pourquoi, dans ta boucle de lecture tu instancies à nouveau pr ? enfin pourquoi tu ne fais pas comme dans la boucle d'écriture ?

    Bon comme je suis un néophyte là-dedans ... as tu regardé le tuto sur java.io ? Il y a un exemple d'utilisation et il y a quelques différences avec ton bout de code.

    bonne chance

  5. #5
    Membre éclairé Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Par défaut
    en fait dans la boucle je récupère les pr (pipedRead) que j'ai stocker dans des arrayList.

    Mais en fait j'ai trouver la solution, ce n'etait pas à cause des tubes, c'etait a cause d'une autre partie de mon prog.

    Mais je te remercie qd meme a bientot ++

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

Discussions similaires

  1. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  2. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  3. [langage] probleme avec les listes dans des listes
    Par pqmoltonel dans le forum Langage
    Réponses: 7
    Dernier message: 27/04/2004, 12h32
  4. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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