Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1682 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] ObjectInputStream (socket.getInputStream()) bloquant !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] ObjectInputStream (socket.getInputStream()) bloquant !

n°994884
3xc4l18ur
question = ( to ) ? be : ! be;
Posté le 27-02-2005 à 18:19:25  profilanswer
 

Bonjour  
je souhaite faire transité des objetc via le reseau
mais je ne comprends pas pourquoi je n'arrive meme pas ce stade puisque
 

Code :
  1. bufferIN = new ObjectInputStream (new BufferedInputStream(socket.getInputStream()));


 
est bloquant.
La socket est bonne etc.
En décomposant :

Code :
  1. InputStream is = socket.getInputStream();
  2. System.out.println("plop2-2" );
  3. if ( is == null)
  4. System.out.println("is est null" );
  5. else
  6. System.out.println("is n est pas null" );
  7. //affiche"is n est pas null"
  8. bufferIN = new ObjectInputStream (is);
  9. //n'arrive jamais ici
  10. System.out.println("plop2-3" );


 
En fait bufferIN = new ObjectInputStream (is) ne marche pas ..  
Le probleme a l'air récurrent sur les newsgroups mais j'ai vu de solutions  [:atog]  
 
Merci

mood
Publicité
Posté le 27-02-2005 à 18:19:25  profilanswer
 

n°995506
Shaps
Posté le 28-02-2005 à 10:35:45  profilanswer
 

Tu dois créer ces flux par paires...
 
Client

Code :
  1. InputStream is = socket.getInputStream();
  2. bufferIN = new ObjectInputStream (is);
  3. OututStream os = socket.getOutputStream();
  4. bufferOUT = new ObjectOutputStream(os);


 
Serveur

Code :
  1. OututStream os = socket.getOutputStream();
  2. bufferOUT = new ObjectOutputStream(os);
  3. InputStream is = socket.getInputStream();
  4. bufferIN = new ObjectInputStream (is);


 
Donc l'ordre de création de tes flux est important... La création de l'InputStream côté client doit correspondre à l'OutputStream côté serveur...

n°995683
3xc4l18ur
question = ( to ) ? be : ! be;
Posté le 28-02-2005 à 13:26:36  profilanswer
 

merci je connais le principes des stream, mais j'avoue que je ne comprends pourquoi ca bloque sur le ... bufferIN = new ObjectInputStream (is);

n°995752
Shaps
Posté le 28-02-2005 à 14:13:35  profilanswer
 

Montre l'ouverture de tes flux coté client et serveur...

n°996380
3xc4l18ur
question = ( to ) ? be : ! be;
Posté le 28-02-2005 à 21:19:04  profilanswer
 

client

Code :
  1. ObjectInputStream bufferIN;
  2. PrintWriter bufferOUT;
  3. InputStream is = socket.getInputStream();
  4. bufferIN = new ObjectInputStream (is);
  5. //bufferIN = new ObjectInputStream (new BufferedInputStream(socket.getInputStream()));
  6. bufferOUT = new PrintWriter(socket.getOutputStream(), true);


 
serveur

Code :
  1. bufferIN = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  2. ObjectOutputStream bufferOUT2 = new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream()));
  3. bufferOUT2.writeObject(vector);

n°996547
Shaps
Posté le 28-02-2005 à 22:56:01  profilanswer
 

Comme dis plus haut inverse la création des flux coté client ou coté serveur afin qu'un flux InputStream soit créé sur un OutputStream...
Essaies ceci et tiens nous au courant...
 
Client

Code :
  1. // Création de l'input stream
  2. ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
  3. // Création de l'output stream
  4. ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
  5. Vector vecRead = (Vector)ois.readObject();


 
Serveur

Code :
  1. // Création de l'output stream
  2. ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
  3. // Création de l'input stream
  4. ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
  5. oos.writeObject(vector);


Message édité par Shaps le 28-02-2005 à 23:00:25
n°997591
3xc4l18ur
question = ( to ) ? be : ! be;
Posté le 01-03-2005 à 21:51:13  profilanswer
 

Bah c'est fait
C'est just que l'objet ne va que dans un sens (serveur -> client), et que dans l'autre c'est une String


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] ObjectInputStream (socket.getInputStream()) bloquant !

 

Sujets relatifs
sqlite et javaComment utilisé deux ecrans en java?
Java Sound /JMF pour lire des flux streaming ?Comment installer un compilateur Java sous LINUX ?
[telephonie] developper un voip en java!!connexion par socket via XML
temps reel en java[Java] Envoi de mail automatique en début de mois
[deb] Probleme Java! MVC![Java] Dessin dans un buffer affiché par paint => problème RESOLU
Plus de sujets relatifs à : [Java] ObjectInputStream (socket.getInputStream()) bloquant !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR