Stream simple et DataStream
Bonjour à tous,
J'ai une problématique qui me semble plutôt banale mais je n'ai pas trouver de réponse dans les 53 pages de la partie IO de ce forum :cry:
Alors je me permet de pauser la question.
J'ai 1 serveur et un client qui communiquent par socket,le client demande un fichier et le serveur traite le fichier et l' envoie a la volée (jusque ici rien de compliquer) et après le serveur doit envoyer un code pour indiquer si l'opération c'est bien passée.
donc coté client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
DataOutputStream dos = new DataOutputStream(os);
DataInputStream dis=new DataInputStream(is);
BufferedInputStream bis=new BufferedInputStream(is)
//Envoie de la demande
dos.writeUTF(cheminDuFichier.toString());
byte [] t = new byte[1024];
int a;
//lecture du fichier
while( (a = bis.read(t)) !=-1){
localFile.write(t,0,a);
}
//Lecture du code reponse
dis.readInt() |
et coté serveur on a le pendant
Code:
1 2 3 4 5 6
|
DataOutputStream dos = new DataOutputStream(os);
DataInputStream dis=new DataInputStream(is);
cheminDuFichier=dis.readUTF()
os.write(123215645);
dos.writeInt(1); |
Ce code ne marche pas,en effet le :
Code:
1 2
| //Lecture du code reponse
dis.readInt() |
Coté client léve une EOF exception,normal je pense il essaye de lire dans le stream qui a été fermé puisque la boucle a levé un -1...
Donc en fait ce que j'aimerai c est arrivé a lire d'autres infos dans le stream apres la boucle.Pour résumer j'aimerais utiliser des DataStream,puis parcourir mon Stream normal avec une boucle et re-utiliser derrière un DataStream.
Est ce possible ou est ce que c 'est ma façon de faire qui est foireuse.
merci