[ALG2] Les flux et l'ecriture

Voir le sujet précédent Voir le sujet suivant Aller en bas

[ALG2] Les flux et l'ecriture

Message  XavBod le Dim 30 Mai 2010, 14:10

Bonjour bonjour,
Dans le cadre du cours on nous demande de gérer un serveur d'echo multiclient.

Pour compliquer la chose je me suis dit que en fonction de ce que le client envoye au serveur(mini requete),il reçoit une réponse appropriée. Il analyse bien la requete étant donné qu'il fournit (à l'affichage chez le serveur) une bonne réponse mais lors de l'envoi au client il ne semble rien se passer Sad.
On dirait qu'avec le socket qu'il reçoit lors de la construction, il ne se "lie" pas correctement avec le flux de sortie :S

L'approche du début est la même que d'habitude,
Une fois créé et ayant un SS, le serveur attends (via accept()) pour ensuite créer un Thread.
J'ai repris le client du serveur monoclient et oui, il arrive a afficher les infos du serveur auquel il a sur se connecter.


Spoiler:
Code:
 private class ThreadClient extends Thread {

        private Socket socketClient;
        private OutputStream out;
        private InputStream in;

        ThreadClient(Socket s) throws IOException {
            socketClient = s;
            out = s.getOutputStream();
            in = s.getInputStream();
            System.out.println("Creation terminée");
                                                                   
        }

        public void run() {
            String requete = "";
            String reponse="";
            Random r = new Random();
            int c;
                try {
                while (true){
                 
                 
                    while ((char)(c = in.read()) != '\n') {
                        requete += (char) c;       
                    }
                    System.out.println("Le client m'a écrit: "+requete);
                    if (requete.charAt(0)=='N'){
                        reponse = ""+r.nextInt(10);
                    }else{
                        reponse = "Requete inconnue";
                    }
                    System.out.println(reponse);

                    for(int i=0;i<reponse.length();i++){
                        out.write((int)reponse.charAt(i));
                       
                    }

                    System.out.println("Requete Suivante");
                    requete ="";
                    reponse="";
                }
            } catch (IOException ioe) {
                System.err.println(ioe);
            }finally{
                try{
                    out.close();
                    in.close();
                    socketClient.close();
                }catch (IOException ioe){
                    System.err.println(ioe);
                }
            }
        }
    }
}

Je sais que la méthode d'envoi de la réponse n'est pas optimale mais je n'ai tjrs pas trouver une meilleur façon de faire avec un flux binaire tout basique (pas en mode char avec 36 tampons Razz)

Bref, si vous voyez une faute, et je sens que ca va etre gros comme une maison, n'hésiter pas à répondre Very Happy

XavBod

Nombre de messages : 196
Age : 26
Prénom : Xavier
Statut : Etudiant 3eme indu
Localisation : Woluwe
Date d'inscription : 27/09/2008

Revenir en haut Aller en bas

Re: [ALG2] Les flux et l'ecriture

Message  nvs le Dim 30 Mai 2010, 14:35

je te conseille de rapidement prendre en main le débogueur et son interface graphique intégrée à netbeans !










_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [ALG2] Les flux et l'ecriture

Message  XavBod le Dim 30 Mai 2010, 14:38

Oki je vais essayer ca

Edit: apparement c'est un probleme lié à une mauvaise utilisation d'un outputStream
--> en passant par un Printwriter correctement initialisé ca passe tout seul.
Donc je m'en vais revoir les flux Sad

XavBod

Nombre de messages : 196
Age : 26
Prénom : Xavier
Statut : Etudiant 3eme indu
Localisation : Woluwe
Date d'inscription : 27/09/2008

Revenir en haut Aller en bas

Re: [ALG2] Les flux et l'ecriture

Message  Jhon le Jeu 03 Juin 2010, 17:44

Si tu commences à changer le type de stream que tu utilises n'oublie pas de penser au flush Smile

Jhon

Nombre de messages : 212
Age : 28
Prénom : Jonathan
Statut : promo réseaux 2012
Localisation : 50.879858N,4.34801E
Date d'inscription : 23/09/2008

Revenir en haut Aller en bas

Re: [ALG2] Les flux et l'ecriture

Message  Contenu sponsorisé Aujourd'hui à 18:54


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum