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
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 :et coté serveur on a le pendant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()Ce code ne marche pas,en effet le :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 //Lecture du code reponse dis.readInt()
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
Partager