Bonjour,
J'ai donc un ptit problème de communication entre 2 flux et, bien qu'il soit probable que ce soit une erreur toute bête , je sèche complètement .
Mon objectif étant de permettre à un client d'uploader des fichiers sur un serveur, j'ai essayé avec ces morceaux de code :
Du coté serveur j'ai ça :
Code :
- String leNomFichier = "" ;
- long laTailleFichier = -1 ;
- byte leTampon[] = new byte[TAILLE_BLOC] ;
- int leNbOctetsLus = -1, leNbOctetsLusTotal = 0 ;
- try
- {
- leNomFichier = sonFluxEntree.readUTF() ;
- laTailleFichier = sonFluxEntree.readLong() ;
- FileOutputStream leFluxFichier = new FileOutputStream(REPERTOIRE + leNomFichier) ;
- while (leNbOctetsLusTotal < laTailleFichier)
- {
- leNbOctetsLus = sonFluxEntree.read(leTampon) ;
- System.out.println(leNbOctetsLus) ;
- leFluxFichier.write(leTampon, 0, leNbOctetsLus) ;
- leNbOctetsLusTotal += leNbOctetsLus ;
- }
|
et du coté client j'ai ça :
Code :
- File leFichier = new File(REPERTOIRE + telFID + EXTENSION) ;
- byte leTampon[] = new byte[TAILLE_BLOC] ;
- int leNbOctetsLus = -1 ;
- try
- {
- sonFluxSortie.writeUTF(leFichier.getName()) ;
- sonFluxSortie.writeLong(leFichier.length()) ;
- FileInputStream leFluxFichier = new FileInputStream(leFichier) ;
- while ((leNbOctetsLus = leFluxFichier.read(leTampon)) != -1)
- {
- sonFluxSortie.write(leTampon, 0, leNbOctetsLus) ;
- System.out.println(leNbOctetsLus) ;
- }
|
J'en viens donc maintenant à mon problème :
- Grâce aux System.out.println(leNbOctetsLus) ; placés dans les boucles j'ai pu constater que lors du dernier bloc à envoyer leNbOctetsLus était bien inférieur à TAILLE_BLOC coté client, mais que cet abrutit de serveur lisait encore TAILLE_BLOC octets (il faut savoir que j'ai d'autres write qui suivent derrière coté client).
- Au final, je me retrouve coté serveur avec un fichier plus gros que l'original, et tout les read / write qui suivent ne sont plus en phases .
Voili voilou, désolé si j'ai pas été super clair et désolé de vous déranger si c'est une erreur de merde .
En tout cas ce serait super cool si vous pouviez me débloquer .
Merci d'avance pour les réponses .
Message édité par HannibAlBundie le 20-02-2004 à 18:10:26