IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Recuperation de ObjectInputStream bloquant


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 6
    Par défaut Recuperation de ObjectInputStream bloquant
    bonjour je voudrai juste faire passer un objet sur une socket java mais ca se bloque au niveau de l'instruction en gras.
    Si quelqu'un sait de quoi il s'agit !!! je patoge dessus depuis hier.


    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
    public class Serveur {
       static final int port = 10000;
    
       public static void main(String[] args) throws Exception {
           try{
           ServerSocket s = new ServerSocket(port);
           Socket socket = s.accept();
    
           System.out.println("Client connecté \n");
    
           ObjectInputStream plec= new ObjectInputStream(socket.getInputStream());
    	ObjectOutputStream pred= new ObjectOutputStream(os);
         System.out.println("grrrrrrrrrrr \n");
         String str = ( String) plec.readObject();
         pred.writeObject(str);
           socket.close();
           }
           catch(Exception e)
    	   {}
       }
    }
    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
    public class Client {
       static final int port = 10000;
     
       public static void main(String[] args) throws Exception {
            Socket socket = new Socket(args[0], port);
            System.out.println("SOCKET = " + socket);
     
          OutputStream os = socket.getOutputStream();
    	ObjectInputStream plec= new ObjectInputStream(socket.getInputStream());
     
    	ObjectOutputStream pred= new ObjectOutputStream(os);
     
    	String str = new String();
     
    	pred.writeObject(str);//println(str);          // envoi d'un message
    	str = (Maclass)plec.readObject();     // lecture de l'écho
     
    	System.out.println("Recu");
            plec.close();
            pred.close();
    	socket.close();
       }
    }

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    Que veux-tu dire par "ca bloque" ? Le message n'est pas reçu ? Ca ne compile pas ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 6
    Par défaut
    Citation Envoyé par xavlours
    Bonjour,

    Que veux-tu dire par "ca bloque" ? Le message n'est pas reçu ? Ca ne compile pas ?

    bonjour ca compile bien mais dé que je lance le serveur et le client. Le client est bien accepté mais les objects ne sont pas envoyés le serveur semble attendre un gros objet.

    Quand j'arrete le client alors la j'ai des exception de tout genre.


    Mais j'ai vu que ca marche si je declare les ObjectInputStream et ObjectOutputStream comme membre de la classe et non des objets du main.


    je sais pas pourkoi ca marche pas. Si vous savez la cause ce serait une connaissance de plus à partager
    Mais bon merci quand meme.

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Ah, je viens d'y penser : essaie d'appeler flush() sur tes OutputStreams après chaque envoi de données.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2006
    Messages : 43
    Par défaut
    le os du serveur c est quoi? aucun object ne s appelle os... et puis quand tu veux faire de l echo faut ptete ouvrir un serveur sur le client pour qu il recoive quelque chose non? et avoir une socket d ouvert pour le servir si il veut renvoyer quelque chose au client ...

  6. #6
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2
    Par défaut
    ObjectInputStream bloque lors de la création... Ca m'est arrivé récemment, mais je ne sais plus pourquoi
    Tu peux envoyer un message "Hello" du serveur au client, et faire répondre le client (car j'imagine que le serveur bloque aussi à la création du InputStream, non?)

Discussions similaires

  1. Creation ObjectInputStream bloquante
    Par Invité dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 04/04/2007, 13h44
  2. recuperation de la structure d'une base
    Par pascalT dans le forum 4D
    Réponses: 7
    Dernier message: 07/06/2006, 15h32
  3. Réponses: 2
    Dernier message: 22/07/2002, 18h02
  4. Réponses: 4
    Dernier message: 18/07/2002, 13h32
  5. recuperer la résolution de l'écran
    Par florent dans le forum C++Builder
    Réponses: 11
    Dernier message: 07/06/2002, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo