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 :

Exception levée lors d'un write dans une socket


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut Exception levée lors d'un write dans une socket
    Bonjour,

    Je tente d'écrire un tableau de byte dans une socket d'un serveur. Mais le code suivant me renvoie une exception systématique :

    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
     
    try {
        int serverPort = config.getPort();
        ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
        ServerSocket server = serverSocketChannel.socket();
        server.bind(new InetSocketAddress(serverPort));
     
        final Socket socket = server.accept();
        final DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
     
        Thread thread = new Thread() {
            public void run() {
                try {
                    while(true) {
                        dos.write(new byte [] { 
                            0, 0, 0, 64, 0, 50, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, -47, 32, -38, 71, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 35, 0, 0, 0, 105, -91, -85, 29, 0, 0, 48, 29, 64, 0, 0, 0, -128, -73, -44, -1
                        });
                        dos.flush();
                        Thread.sleep(50);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }	
        };
        thread.run();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    L'exception en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    java.io.IOException: Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte
    	at sun.nio.ch.SocketDispatcher.write0(Native Method)
    	at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:33)
    	at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
    	at sun.nio.ch.IOUtil.write(IOUtil.java:75)
    	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
    	at java.nio.channels.Channels.write(Channels.java:60)
    	at java.nio.channels.Channels.access$000(Channels.java:47)
    	at java.nio.channels.Channels$1.write(Channels.java:134)
    	at java.io.DataOutputStream.write(DataOutputStream.java:90)
    	at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
    J'ai beau chercher, je ne comprend vraiment pas.. Un byte est bien codé sur 8bits de -127 à 128 inclus...

    J'ai tenté avec un tableau de byte contenant 2 zéro et idem, j'ai la même exception... Je dois passer à côté d'un truc mais je ne vois vraiment pas quoi..

  2. #2
    Membre chevronné
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Points : 1 984
    Points
    1 984
    Par défaut
    Ca sent la deconnexion du serveur ca... Visiblement, il n'interprete pas bien ta trame (a supposer qu'elle soit valide) et stoppe la communication. Est ce que tu as acces au programme du serveur pour voir ce qui ne lui plait pas?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    Effectivement, le problème venait de mon client. Une exception entrainait une déconnexion.

    Merci pour la piste

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

Discussions similaires

  1. [Débuter] Problème lors de l'écriture dans une socket
    Par kek's dans le forum Réseau
    Réponses: 1
    Dernier message: 11/02/2011, 09h56
  2. Réponses: 2
    Dernier message: 20/05/2006, 17h57
  3. Envoie d'un formulaire lors d'un click dans une listBox
    Par MicheMTP13 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/10/2005, 17h34
  4. plusieurs document.write dans une meme page
    Par Loko dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/07/2005, 17h16
  5. write() dans une socket.. unix
    Par slack dans le forum Réseau
    Réponses: 5
    Dernier message: 18/12/2002, 20h42

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