Bonjour,
Lorsque je fais un envoi de fichier avec des sockets, j'obtiens seulement une fois sur deux voire trois, les octects correctement.
Les autres fois, certains octects sont perdus, soit à l'envoi, soit à la réception.
(je le sais car j'ai fait un test dans la boucle comptant le nombre d'octets recu du coté serveur et il différe de temps en temps de celui de la taille du fichier envoyé par le client).
Mon code n'a rien de spécial.
Voici la partie charnière du client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 int bufferSize = 1000; int bytesRead; byte[] bytes = new byte[bufferSize]; FileInputStream fileInput = new FileInputStream( new File( "C:\\JavaEclipseWorkSpace.rar")); DataOutputStream output = new DataOutputStream( socket.getOutputStream()); while ((bytesRead = fileInput.read(bytes)) != -1) { total = total + bytesRead; output.write(bytes, 0, bytesRead); } System.out.println("Total " + total);
Voici celle du serveur :
Toute aide serait la bienvenue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 int bytesRead; int bufferSize = 1000; byte[] bytes = new byte[bufferSize]; int total = 0; DataInputStream input = new DataInputStream(incomingS.getInputStream()); while (true) { bytesRead = input.read(bytes); if (bytesRead == -1) break; total = total + bytesRead; } System.out.println("Total " + total);
Partager