Salut à tous. Alors je suis en train de faire un petit prog client/serveur : le serveur récupère sur une URL des fichiers et les envoie aux clients.

Bon la partie sur les sockets, pas de prob, mais comment faire pour que le client enregistre le fichier reçu sur son dDur ???

- Faut-il enregitrer l'objet reçu dans un tableau de bytes?
- Ou peut-on le transférer directement sur le Dur?
- Ou faut-il utiliser un objet sérialisable?

voila comment j'ai commencé :
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
import java.net.*;
import java.io.*;
 
public class Serveur {
 
static final int port = 10102;
 
 public static void main ( String [] args ) throws MalformedURLException, IOException {
 
 ServerSocket socket = new ServerSocket ( port );
 Socket soc = socket.accept();
 URL url=new URL("<a href="http://mon-url.fr/but01.gif" target="_blank">http://mon-url.fr/but01.gif</a>"); 
 Object image = url.getContent();    // est-ce correct ?
 ObjectOutputStream oss = new ObjectOutputStream (soc.getOutputStream());  
 oss.writeObject (image); 
 System.out.println (" END ");
 oss.writeObject (" END ") ;
 oss.close ();
 socket.close ();
 }
 }
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
import java.net.*;
import java.io.*;
 
public class Client {
 
static final int port = 10102;
 
 public static void main ( String [] args ) throws MalformedURLException, Exception {
 
 Socket socket = new Socket ( "adresse ip" , port );
 ObjectInputStream ois = new ObjectInputStream ( socket.getInputStream ());
while ( true ) {
Object o = ois.readObject ();   //on récupère l'image sur le flux
if (o.equals(" END ")) break ;
System.out.println (o); // trace locale
}
 System.out.println (" END ");
 // attention aux commandes de type protocole
 ois.close ();
 socket.close ();
 }
 }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class objet implements Serializable { 
 
public objet ( ) {
}
 public void enregistrer () {
 
//si on utilise un objet sérialisable, que faire ???? :roll: 
 
}
}
Merci beaucoup à tous