Bonjour,

Je cherche à envoyer un fichier d'un coup par socket, je pense que mon code est bon mais je ne reçois rien ..

J'ai vu pas mal de solution sur le net qui consistait à découper le fichier en tableau de Byte mais à priori, il devrait être possible d'envoyer directement un objet File non ?

Un bout de mon code :

Serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
File f = new File(fichier);
System.out.println("f.length : "+f.length());
envoieObjet.writeObject(f); //envoieObjet est un objet de type ObjectOutputStream
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
 
	       File f = new File(str); //str est le nom du fichier envoyé précédemment
	       try {
	    	    FileWriter fw = new FileWriter(f);
	    	    FileReader reader = new FileReader((File)RecoiFichier.readObject()); //RecoiFichier est un objet de type ObjectInputStream
	    	    try {	    	           	        
	    	    	char[] cbuf = new char[2048];
	    	        int len;
	    	        while ( (len = reader.read(cbuf)) > 0 ) {
	    	        	fw.write(cbuf, 0 , len);
	    	        }
 
	    	     } finally {	    	       
	    	        reader.close();
	    	        fw.flush();
	    	        fw.close();
	    	     }
                } catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}      // lecture de l'écho
		catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}