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

Langage Java Discussion :

Client/Serveur : probleme d'affichage


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Points : 50
    Points
    50
    Par défaut Client/Serveur : probleme d'affichage
    Salut,

    j'ai une class Client et une autre Serveur.
    Dans la classe Serveur, j'ai la méthode suivante :

    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Je délire où tu ne lis qu'une ligne de la réponse du serveur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    line = in.readLine();

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par chtig
    Je délire où tu ne lis qu'une ligne de la réponse du serveur ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    line = in.readLine();
    J'ai remplacé la ligne précédente par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while((line = in.readLine()) != null){
       System.out.println(line);
    }
    Ca affiche ce qu'il faut mais le programme ne rend pas la "main".
    Une fois l'affichage terminé, il devrait y avoir :
    >

    Mais là rien...

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Tu peux remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while((line = in.readLine()) != null){
       System.out.println("|"+line+"|");
    }
    System.out.println("fini");
    Et me dire ce que ça donne ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    InputStream inputStream = s.getInputStream();
    BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while((line = in.readLine()) != null){
       System.out.println(line);
    }
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while((inputStream.available()) != 0){
       System.out.println(in.readLine());
    }
    pour voir ...
    C'est un peu normal que ça bloque, un inputStream dans lequel il n'y a plus rien bloque quand on fait un read ...

  6. #6
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ouaip, je suis un peu bête c'est normal ...
    Le souci c'est que côté client, en raisonnant dans l'absolu (sans penser implémentation Java), comment tu veux qu'il sache que la communication avec le serveur est terminée ?
    Il reçoit des choses au fur et à mesure (c'est du réseau en dessous) et à un moment il ne reçoit plus rien. Ca veut dire que c'est fini ? Pas forcément, il peut juste s'agir d'un délai réseau ...

    Donc j'ai l'impression que tu n'échapperas pas à faire envoyer par le serveur un message qui veuille dire fin de communication que tu interpréteras par le client...

    Ou alors tu gardes ce que tu avais au début et tu fais couper la socket par le serveur (après tout, c'est une socket vers ce client en particulier, et elle ne sert plus à rien)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 179
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par chtig
    Ouaip, je suis un peu bête c'est normal ...
    Le souci c'est que côté client, en raisonnant dans l'absolu (sans penser implémentation Java), comment tu veux qu'il sache que la communication avec le serveur est terminée ?
    Il reçoit des choses au fur et à mesure (c'est du réseau en dessous) et à un moment il ne reçoit plus rien. Ca veut dire que c'est fini ? Pas forcément, il peut juste s'agir d'un délai réseau ...

    Donc j'ai l'impression que tu n'échapperas pas à faire envoyer par le serveur un message qui veuille dire fin de communication que tu interpréteras par le client...

    Ou alors tu gardes ce que tu avais au début et tu fais couper la socket par le serveur (après tout, c'est une socket vers ce client en particulier, et elle ne sert plus à rien)
    Ca se fait comment ?

  8. #8
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Je ne suis pas certain, mais j'essayerais ça :
    Côté serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    socket.shutDownOutput();
    et côté client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while (!socket.isInputShutdown()){
    }

Discussions similaires

  1. Client/Serveur : probleme communication avec flux clavier
    Par Romvaillant dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 02/03/2009, 16h23
  2. [Reseau] probleme client/serveur TCP LInux
    Par jmjmjm dans le forum Réseau
    Réponses: 20
    Dernier message: 03/12/2006, 20h32
  3. [C#] Probleme de connection client/serveur
    Par Myfred dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/10/2006, 20h29
  4. probleme d'application client-serveur en vb6 et SQL server
    Par maxtin dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/08/2006, 15h19
  5. Probleme Client / Serveur
    Par Kinian dans le forum Access
    Réponses: 4
    Dernier message: 16/06/2006, 11h12

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