Java.io.IOException: Pipe not connected
karine
-
vorax -
vorax -
Bonjour,
voici mon code, je veux envoyer ce que je lis avec relaybinary dans le pipe pour le transmettre à interpreteur :
Voici mon erreur : java.io.IOException: Pipe not connected
Est-ce que vous voyez d'où ça provient ?
merci
voici mon code, je veux envoyer ce que je lis avec relaybinary dans le pipe pour le transmettre à interpreteur :
private PipedOutputStream relayBinary() throws IOException
{
byte[] buf=new byte[1024];
PipedOutputStream pipe = new PipedOutputStream();
int n;
while (true) {
n=fromWebBin.read(buf);
pipe.write(buf, 1, n-1);
}
return pipe;
} // !relayBinary
void envoi_reponseWeb_au_client() {
PipedOutputStream pipe = new PipedOutputStream();
pipe = relayBinary();
PipedInputStream pipe2 = new PipedInputStream(pipe);
InputStreamReader input = new InputStreamReader(pipe2);
Interpreteur interprete = new Interpreteur(input, url);
}
Voici mon erreur : java.io.IOException: Pipe not connected
Est-ce que vous voyez d'où ça provient ?
merci
10 réponses
-
Sur quelle ligne se déclenche l'erreur ?
-
Ca se déclenche à la ligne
pipe.write(buf, 1, n-1);
dans la methode relayBinary.
Comment je peux corriger ça ?
merci ! -
Tu as oublié le connect je pense...
http://java.sun.com/j2se/1.4.2/docs/api/java/io/PipedOutputStream.html -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Aaaahaha tu n'as jamais fait de pipe (prononcer païpe) avant :o)))) C'est ton droit ^^ Oups pardon :o)
Bon en gros un pipe c'est une espèce de tube. Tu écris d'un coté et tu lis de l'autre. Il faut donc que tu le connectes pour définir qui lit et qui écrit. Donc regarde comment ça marche sur le lien ci-dessus.
Un exemple ici :
http://gbm.esil.univ-mrs.fr/~tourai/Java/node16.html#SECTION0214140000000000000000 -
Tu veux dire que je dois faire comme ça ?
PipedInputStream in=new PipedInputStream();
PipedOutputStream pipe=new PipedOutputStream(in);
connect(in);
connect(pipe);
-
OK, j'ai trouvé, c'était
pipe.connect(in);
in.connect(pipe);
Mais maintenant j'ai une autre erreur, je mets le code :public PipedInputStream relayBinary() throws IOException { byte[] buf=new byte[1024]; PipedInputStream in=new PipedInputStream(); PipedOutputStream pipe=new PipedOutputStream(in); pipe.connect(in); in.connect(pipe); int n; while (true) { n=fromWebBin.read(buf); if (n==-1) break; if (buf[0]==10 && cr) { sout.write(buf, 1, n-1); pipe.write(buf, 1, n-1); } else { sout.write(buf, 0, n); pipe.write(buf, 0, n); } cr=false; } pipe.close(); return in; } // !relayBinary public void envoi_reponseWeb_au_client() { PipedInputStream pipe = relayBinary(); InputStreamReader input = new InputStreamReader(pipe); Interpreteur interprete = new Interpreteur(input, url); } }
et là j'ai l'erreur java.io.IOException: Already connected à la ligne
pipe.connect(in);
J'y comprends rien !! -
Essaie de t'inspirer du code qui est là :
http://www.eli.sdsu.edu/courses/spring97/cs596/notes/CGIandServer/CGIandServer.html
Ca à l'air de ressembler à ce que tu veux faire. -
Merci mamiemando mais j'ai abandonné cette histoire de pipe.
Je me retourne le cerveau depuis le début de la semaine !
Donc j'ai tout effacé et je recommence.
mais merci quand même -