Pb passer un objet dans socket en java

marmotte59144 Messages postés 1 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 30 août 2005 - 30 août 2005 à 16:01
cs_Chris2001 Messages postés 8 Date d'inscription vendredi 20 mai 2005 Statut Membre Dernière intervention 22 septembre 2005 - 22 sept. 2005 à 12:13
bonjour,



je développe une application client-serveur en java. J'utilise des socket pour faire passer entre autre des objets.

Mais il y a une erreur. Si mon objet passe en envoi, en reception cela ne fonctionne pas.

D'où mon souci.



Etant donné que ma socket m'envoi automatiquement en format string , puis-je reconstruire mon objet a la recepetion?



le code :

DataInputStream fromClient;

PrintStream toClient;

Tsk t = new Tsk();

toClient.println( t );



de l'autre coté :

DataInputStream formServer;



je peux pas faire : fromServer.read qui retourne un Objet (en l'occurence Tsk);





Merci d'avance de vos réponses car c'est urgent.

1 réponse

cs_Chris2001 Messages postés 8 Date d'inscription vendredi 20 mai 2005 Statut Membre Dernière intervention 22 septembre 2005
22 sept. 2005 à 12:13
1. ton objet doit implémenté l'interface java.io.Serializable
public class Tsk implements java.io.Serializable {
...
}

2. pour sérialisé ton objet, utilise le flux java.io.ObjectOutputStream

Tsk tsk = new Tsk();

java.io.ObjectOutputStream oos = new java.io.ObjectOutputStream(socket.getOutputStream());

oos.writeObject(tsk);

oos.flush();

oos.close();

3. pour désérialiser ton objets de l'autre côté, utilise le flux java.io.ObjectInputStream

java.io.ObjectInputStream ois = new java.io.ObjectInputStream(socket.getInputStream());

Tsk tsk = (Tsk)ois.readObject();

ois.close();



Attention, je n'ai pas protégé le code des exceptions éventuelles et
n'ai pas remis le code pour l'ouverture des sockets mais l'idée est là.
Je t'invite à lire quelques article sur la sérialisation, il y a des
limites, en fait il faut faire attention aux objets que l'on veut
sérialiser.



Chris.
0
Rejoignez-nous