salut j'ai fait un petit programme de transfert de fichier , il fonctionne bien mais le fichier reçu n'est pas complète par exemple si j'envoie un fichier contient 2 page , je reçois un fichier ne contient que 3 et des fois 4 ....ligne
c'est ça le code:

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package src;
import java.net.Socket;
import java.io.FileInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.FileNotFoundException;
 
public class client{
 
	private static File fileToSend=new File("e:\\java.txt");
	private static Socket socket;
	private static DataOutputStream dataOut;
	private static FileInputStream fis = null;
 
 
	public static void main(String []args){
 
		try{
                    socket=new Socket("127.0.0.1",50);
		    dataOut = new DataOutputStream(socket.getOutputStream());
		}
		catch(IOException e){
			System.out.println("Erreur d IO");
		}
		boolean fileExists = true;
		try{
			//Flux de lecture dans le fichier
			fis = new FileInputStream(fileToSend);
		}
		catch(FileNotFoundException e){
			fileExists = false;
		}
 
		if(fileExists){
			//Creation d'un buffer de 2Ko
			byte[] buffer = new byte[2048];
			int bytes = 0;
 
			try{
				//Envoie du nom du fichier dans le flux de sortie
				dataOut.writeUTF(fileToSend.getName());
 
				//Copie du fichier dans le flux de sortie
				while((bytes = fis.read(buffer))!= -1){
					dataOut.write(buffer,0,bytes);
				}
				fis.close();
			}
			catch(IOException e){
				System.out.println("Erreur d IO");
			}
		}
	}
}
serveur:

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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package src;
 
import java.net.InetAddress;
import java.net.Socket;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
 
public class Serveur {
        private static ServerSocket sv;
	private static Socket socket;
	private static DataInputStream dataIn;
	private static FileOutputStream fos;
	private static File file;
 
	public static void main( String[] args){
		int i;
                 while (true){
		try{
                        sv = new ServerSocket(50);
			socket = sv.accept();
			dataIn = new DataInputStream(socket.getInputStream()); 
			file = new File("e:\\e.txt");
			fos = new FileOutputStream(file);
			while((i = dataIn.read())!= -1){
				fos.write(i);
			}
			socket.close();
		}
		catch(IOException e){
			System.out.println("Erreur d IO");
		}
	}	
        }
}
merci d’avance.