Bonjour,
je vous explique, j'ai en gros un système de "client-serveur".
Coté serveur je vais chercher des objects dans une BDD, je les créer en mémoire, et je voudrais les envoyés a mon client. J'utilise le sérialiseur : XMLEncoder et donc XMLDecoder. J'ai donc suivi l'exemple trouvé sur développez(http://ydisanto.developpez.com/tutor...ation/partie2/) , le problème c'est que pour que l'objet sois bien reconstruit, on est obliger de faire : encoder.close(); et donc coté client : decoder.close(); Le problème viens donc du faite que quand ca close les inputstream et outputstream sont fermé a leur tour et donc ma connection à mon socket...ce qui n'est pas vraiment pratique... donc si quelqu'un a une idée de comment ne pas perdre cette connection...
merci d'avance...
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 // coté Client private Object XML2Object(InputStream input) { XMLDecoder decoder = null; decoder = new XMLDecoder(input); Object o = decoder.readObject(); decoder.close(); return o; } // mon input c'est : socket.getInputStream() // coté serveur private void object2XML(Object o) { XMLEncoder encoder = null; try { encoder = new XMLEncoder(new BufferedOutputStream(client .getOutputStream())); } catch (IOException e) { e.printStackTrace(); } encoder.writeObject(o); encoder.flush(); encoder.close(); }
Partager