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 réseau pour recevoir plusieurs lignes.


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 113
    Par défaut Client réseau pour recevoir plusieurs lignes.
    Bonjour à tous,

    j'ai écris un serveur avec quelques camarades de classe pour un de nos projets. Il va chercher dans une BDD et renvoie des infos.
    En fonction de la commande qu'il reçoit, plusieurs choses sont faites.

    Bref.

    Une fonction est "CHECK", elle va renvoyer la liste complète des actions (en bourse) qui sont dispo et ensuite envoyer "+30" pour dire que c'est fini, et que tout s'est bien passé.

    Quand je me connecte au serveur avec HyperTerminal, tout marche parfaitement.

    Maintenant, je dois écrire le Client, et le problème, c'est que je reçois bien toute la liste, mais je ne reçois pas le code de confirmation, et je ne peux pas renvoyer de commande. (ça ne fait plus rien.)

    Voici mon code, quelqu'un pourrait t-il me dire quel est le problème?

    Merci !!

    Philippe

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    import java.net.*;
     
    import java.io.*;
     
    public class EchoClient1 {
     
        public static void main(String[] args) {
     
            Socket theSocket;
            BufferedReader theInputStream;
            BufferedReader userInput;
            PrintStream theOutputStream;
            String theLine;
            String lineFromServer = "";
            String server = "localhost";
            int port = 4321;
     
            try {
                theSocket = new Socket(server, port);
                theInputStream = new BufferedReader(new InputStreamReader(theSocket.getInputStream()));
                theOutputStream = new PrintStream(theSocket.getOutputStream());
                userInput = new BufferedReader(new InputStreamReader(System.in));
     
     
                while (true)
                {
     
                    theLine = userInput.readLine();
                    if (theLine.equals("."))
                        break;
     
                    theOutputStream.println(theLine);
                    theOutputStream.flush();
                    while((lineFromServer = theInputStream.readLine()) != null)
                    	System.out.println(lineFromServer);
     
     
                }
            }
            catch (UnknownHostException e)
            {
                System.err.println("Unknown Host Exception: "+e);
            }
            catch (IOException e)
            {
                System.err.println("IO Exception: "+e);
            }
        }
     
    }

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Y a-t-il un retour à la ligne après le "30" ?

    ... c'est une idée comme une autre... si celle-ci ne marche pas, pourrais-tu examiner plus avant le comportement, par exemple détailler le ça ne fait plus rien ? Où en est ton programme à ce moment là ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 113
    Par défaut
    Merci pour ta réponse.

    Concernant le retour à la ligne après le code de confirmation, effectivement, il n'y était pas.
    Donc, maintenant je le reçois bien, mais je ne peux toujours rien faire une fois les informations reçues.
    En fait, le programme tourne toujours, mais je peux taper ce que je veux dans la console, rien ne se passe...

    Des idées pour voir "ce qui se passe" ??

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 113
    Par défaut
    Bon, j'ai déjà une piste je pense.
    Quand j'affiche ce que le serveur reçoit, j'ai vu qu'il recevait ma première commande, mais pas les suivantes...

  5. #5
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Pour savoir Ce Qui Se Passe, et ben plusieurs options : un debugueur, des System.out.println partout, des JUnits...

    À priori ton programme est bloqué soit sur la lecture du flux standard, soit sur la lecture de ton serveur. À partir d'où lances-tu ton programme ? Un EDI ? Une ligne de commande ? Autrement ?...

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 113
    Par défaut
    Je lance le programme à partir d'Eclipse.

    Quand j'ajoute un System.out après ma boucle, "J'ai fini" ne s'affiche pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    while((lineFromServer = theInputStream.readLine()) != null)
                    	System.out.println(lineFromServer);
     
                    System.out.println("J'ai fini");
    Ca doit être un truc tout con, genre une string qui est null... Mais bon... je sais pas trop comment faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Algo pour rapprocher plusieurs lignes
    Par bibi5883 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2009, 16h18
  2. Problème pour effacer plusieurs lignes dans grid DevExpress
    Par Cazaux-Moutou-Philippe dans le forum Langage
    Réponses: 0
    Dernier message: 08/02/2008, 14h41
  3. Une requête pour éditer plusieurs lignes.
    Par Anduriel dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/05/2006, 21h24
  4. [C#] Un composant pour afficher plusieurs lignes ?
    Par Tips dans le forum Windows Forms
    Réponses: 3
    Dernier message: 26/12/2005, 20h47
  5. [Indy] Client-serveur pour recevoir des flux videos
    Par Nicodemus dans le forum Web & réseau
    Réponses: 7
    Dernier message: 10/10/2005, 15h18

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