Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
20 août 2006 à 10:48
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
20 août 2006 à 13:20
Salut :
Je veux savoir comment envoyer un objet (en particulier un objet "Image") à travers une connexion client / serveur.
----------------------------------------------------------------------------------------------
J'ai pensé a envoyé un fichier dépuis le serveur vers le client contenant l'image puis à extraire un objet "Image".
Mon application a besoin d'un objet "Image" non pas de fichier.
----------------------------------------------------------------------------------------------
Et Merci ...
tucobouch
Messages postés194Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention 1 mai 200950 20 août 2006 à 11:33
Salut!
En Java, tu peux facilement sauvegarder des objets vers un flux réseau ou sur le disque. Pour cela, on peut utiliser la Serialization. La serialisation permet d'écrire un objet (en fait, sauvegarde tous les champs de l'objet) et de pouvoir le recharger a l'identique au moment où il a été sauvegardé. C'est trés puissant et simple a mettre en oeuvre.
Mise en oeuvre :
Il suffit que la classe de ton objet implémente l'interface Serializable (de java.io). C'est une interface vide mais elle permet a la JVM de savoir que ta classe pourra etre serialisée.
Pour ecrire un objet dans un flux, par exemple dans un fichier, c'est fait en 3 lignes ! :
FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(monObjet); //ecrit l'ojett
De meme, pour recuperer l'objet :
FileInputStream fis = new FileInputStream("t.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
monObjet= (ClasseMonObjet) ois.readObject();
Ici, monObjete est du type ClasseMonObjet qui doit hériter de Serializable
public class ClasseMonObjet implements Serializable
{
etc...
};
Dans ces exemples, les sauvegarde/chargement sont dans des fichiers mais tu peux facilement faire ça dans une Socket (suffit de remplacer fis et fos vers les flux de ta socket). Tu pourra ainsi "transporter" des objets instanciés sur ton serveur vers ton client en quelques lignes. C'est super pratique!
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 20 août 2006 à 13:10
Salut :
Merci j'ai presque la même idée mais cette dernière ralentisse l'application.
Je veux envoyer un objet sur un flux et le récupérer à la volée sans passer par le disque (càd sans le sauvegarder en fichier).
Si cela est possible.
Sinon il faut se contenter de la première solution.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 20 août 2006 à 13:20