salut, pour mon projet je dois implémenter une application web qui servira à l'envoi des images et du sons, pour cela j'ai utilisé les sockets en JAVA j'ai mes codes qui marchent parfaitement coté serveur et coté client, je fais le RUN tout se passe bien et mon fichier, une fois reçue par mon serveur il est bien créé mais quand je le consulte je ne le trouve pas en totalité ( pour le son seulement quelques secondes sont jouées et parfois non executable, pour l'image, elle ne s'affiche pas il n'y a q'un croix rouge ) veuillez m'aider S.V.P et merci
et voila mes codes :
Côté Client:
public class Client {
public static void main(String[] zero) throws IOException {
File f = new File("C:\\Users\\Douda\\Downloads\\musicmp4.MP4");
if(f.exists())
{
System.out.println("Envoi du fichier "+f.toURI().toURL());
Socket s = new Socket(InetAddress.getLocalHost(),9001);
OutputStream fluxsortie = s.getOutputStream();
long taillefichier =f.length();
System.out.println("Taille : "+ taillefichier);
long nbpassagesuposé=taillefichier / 4096;
System.out.println("Passages supposés : "+nbpassagesuposé);
InputStream in = new BufferedInputStream(new FileInputStream(f));
ByteArrayOutputStream tableaubytes = new ByteArrayOutputStream();
BufferedOutputStream tampon = new BufferedOutputStream(tableaubytes);
int lu = in.read();
int[] aecrire = new int[4096];
int compteur = 0;
long ouonestrendu=0;
//Tant qu'on est pas à la fin du fichier
while(lu > -1)
{
//On lit les données du fichier
aecrire[compteur] = lu;
lu = in.read();
compteur++;
//Quand on a rempli le tableau, on envoie un paquet de 4096 octets
if(compteur == 4096)
{
compteur=0;
ouonestrendu++;
//On remplit le tampon
for(int x=0;x<4096;x++)
tampon.write(aecrire[x]);
//Et on l'envoie
byte[] b=tableaubytes.toByteArray();
tampon.write(b);
tampon.flush();
tableaubytes.reset();
System.out.println("Avancement : "+(float) ouonestrendu/nbpassagesuposé * 100+"%");
}
}
//On envoie le dernier paquet, qui ne fait pas forcément 4096 octets
//On remplit le tampon
for(int x=0;x<compteur;x++)
tampon.write(aecrire[x]);
//Et on l'envoie
tampon.flush();
fluxsortie.write(tableaubytes.toByteArray());
fluxsortie.flush();
System.out.println("Avancement: "+(float) ouonestrendu/nbpassagesuposé * 100+"%");
System.out.println("Youpi finished");
in.close();
tampon.close();
System.out.println("Passages effectués : "+ouonestrendu);
s.close();
}
else
{
System.out.println("Le fichier "+f+" est introuvable");
}
}
}
-----------------------------
*****************************
Coté Serveur:
public class Serveur {
public static void main(String[] zero) throws IOException {
//On attend la connexion d'un client
ServerSocket socketserver= new ServerSocket(9001);
Socket serviceSocket = socketserver.accept();
int lu;
//Création de l'entrée
InputStream inpute = serviceSocket.getInputStream();
OutputStream out = new FileOutputStream("C:\\musicmp4.MP4");
//Reçoit du client
BufferedInputStream inBuffer = new BufferedInputStream(inpute);
//Envoi vers le fichier
BufferedOutputStream outBuffer = new BufferedOutputStream(out);
lu = inBuffer.read();
int compteur = 0;
while(lu > -1)
{
outBuffer.write(lu);
lu = inBuffer.read();
compteur++;
}
outBuffer.write(lu);
outBuffer.flush();
outBuffer.close();
inBuffer.close();
out.flush();
out.close();
inpute.close();
serviceSocket.close();
}
}
<config,g>Windows 7 / Safari 535.1</config>

merci
Et puis, drvrai-je mettre chaque classe ainsi décrite dans un fichier .java séparément?