[SOCKETS] Objet persistant

Objet persistant [SOCKETS] - Java - Programmation

Marsh Posté le 24-11-2004 à 19:45:17    

Salut a tous,
 
alors la je coince... j'ai une architecture client/serveur en java, et j'ai des sockets toutes betes. Le client balance des données dedans, et je les lis chez le serveur...
Malheureusement, le contenu des messages est tout le temps identique à l'arrivée... comme si la méthode readObject() ne flushait pas le flux...
 
voici le code :
 

Code :
  1. try{
  2.         // ouvrir les fluxs de donnees entre le serveur et le client
  3.         obtenirLesFlux();
  4.        
  5.         while(continu)
  6.         {
  7.             recu=(Message)this.entree.readObject(); 
  8.             if(recu.getText()=="q" )
  9.                 continu=false;
  10.             else
  11.             {
  12.                 //imprime le message recu
  13.                 System.out.println(recu.getText());
  14.                
  15.                 //envoit un echo
  16.                 envoye.setText("echo du serveur" );
  17.                
  18.                 //flush le tout
  19.                 this.sortie.writeObject(envoye);
  20.                 this.sortie.flush();                       
  21.             }       
  22.            
  23.         }


 
et par exemple j'envois un message contenant "toto" puis un message contenant "tata", le serveur affiche 2 fois "toto"....  
Les sockets d'envois sont bien flushées a chaque fois....
surement une erreur bete...
 
merci a ceux qui peuvent me filer un coup de main...
Gian
 
EDIT : je précise, le code est extrait d'une fonction qui n'est pas synchronized.


Message édité par Giansolo le 24-11-2004 à 20:18:24
Reply

Marsh Posté le 24-11-2004 à 19:45:17   

Reply

Marsh Posté le 24-11-2004 à 21:10:26    

ok merci a ceux qui ont jetés un oeil!!
en fait l'erreur venait de la classe Message qui n'était pas réalouée lors de son envoit dans la socket coté client.
un truc tres bete donc. Je sors ->
 
dsl les mecs!
gian

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed