bmanu a écrit :
je transfere des fichiers binaires dans un socket avec approximativement ce code :
Code :
- FichierSocket = new Socket(ipClient, 10021);
- outFichier = new BufferedOutputStream(FichierSocket.getOutputStream());
-
- outFichier1.flush();
- try {
- BufferedInputStream temp = new BufferedInputStream(new FileInputStream(MonFichier), tailleFichier);
- int len = 0;
- int tailleTampon = tailleFichier;
- byte[] tampon = new byte[tailleTampon];
- len = temp.read(tampon, 0, tailleTampon);
- outFichier.write(tampon, 0, len);
- outFichier.flush();
- System.out.println(len + " bytes ont ete envoyes correctement" );
- // }
- }
- catch
- (IOException e) {
- System.out.println("impossible d'ouvrir le fichier" );
- }
- outFichier.close();
- outFichier1.close();
- FichierSocket.close();
- }
|
et je le recois
avec un code similaire
Code :
- byte[] tampon = new byte[tailleInt];
- int len = 0;
- int total = 0 ;
- len = in.read(tampon, len, tailleInt);
|
le probleme et que le transfert se deroule correctement de temps en temps, mais est souvent corrompu : il manque souvent 10 ko au fichier final...
qu'est ce qu'il ne va pas ? y a t-ildes buffers a vider qqpart ?
merci
|