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 :

Problème d'entrée sortie


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 10
    Points
    10
    Par défaut Problème d'entrée sortie
    Bonjour,

    je voudrais savoir s'il était possible de forcer l'écriture du EOF dans un flux.

    Je développe une application Client / Serveur:

    coté serveur voici le code:

    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
        public synchronized  byte[] makeRequest() {
     
                byte[] tab = new byte[1024];
                byte retour[]=null;
                ByteArrayOutputStream b = new ByteArrayOutputStream();
                int tailleLu=0;
            try {
     
                while ((tailleLu = this.entree.read(tab, 0, tab.length))!=-1) {
     
                    b.write(tab, 0, tailleLu);
                    b.flush();
     
                }
                retour=b.toByteArray();
     
            } catch (IOException ex) {
                Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
            }finally{
                try {
                    b.close();
                } catch (IOException ex) {
                    Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
     
                return retour;
        }
    Et voici le code coté client:

    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
        public void run() {
     
            while (true) {
     
                RequeteDistante r = (RequeteDistante) this.gestionnaireDeRequete.traiterRequeteSuivante();
                byte reponse[] = (byte[]) r.methode_distante();
                byte[] tab = new byte[1024];
                ByteArrayInputStream b = new ByteArrayInputStream(reponse);
                int tailleLu = 0;
     
                try {
     
     
                    while ((tailleLu = b.read(tab, 0, tab.length)) != -1) {
     
                        this.sortie.write(tab, 0, tailleLu);
                        this.sortie.flush();
     
                    }
     
                } catch (IOException ex) {
                    Logger.getLogger(ExecuteurDeRequete.class.getName()).log(Level.SEVERE, null, ex);
                } finally {
                    try {
                        b.close();
                    } catch (IOException ex) {
                        Logger.getLogger(ExecuteurDeRequete.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
     
     
                this.yield();
            }
     
     
        }
    Le soucis, c'est que sur un exemple, coté client j'écrit 176 bits et je ferme le flux ByteArrayInputStream.

    En revanche coté serveur, 175 bits sont lus et ensuite il reste boqué en attente en lecture.

    Si je ferme coté client le flux de sortie de socket aprés la premiere requete, il y a bien 176 bits qui sont lus ( cependant vu que le flux est fermé je ne peux plus demandé aux clients de traiter de nouvelles de requetes).

    Merci d'avance pour les personnes qui m'apporteront leur aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 10
    Points
    10
    Par défaut
    Je n'ai toujours pas trouvé d'où vient le problème, donc si quelqu'un peut m'aider, le problème est toujours d'actualité. Merci

Discussions similaires

  1. problèmes de entrée/sortie avec Qemu
    Par CodeurNé dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 11/05/2011, 16h48
  2. Problème d'entrée sortie
    Par Ququbs dans le forum Composants
    Réponses: 3
    Dernier message: 16/07/2010, 23h24
  3. Réponses: 15
    Dernier message: 01/11/2008, 15h57
  4. Problème d'Entrée / Sortie
    Par Stevens.Georges dans le forum Langage
    Réponses: 8
    Dernier message: 08/01/2008, 14h28
  5. Réponses: 11
    Dernier message: 13/10/2004, 00h58

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