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 :

détecter qu'un objet est reçu complètement


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 48
    Points : 21
    Points
    21
    Par défaut détecter qu'un objet est reçu complètement
    Salut à tous,

    J'utilise un SocketChannels pour lire des objets dans un ByteBuffer. Le problème est que je ne sais pas à l'avance combien d'appel à SocketChannel.read() je devrais faire pour recevoir tout l'objet dans mon ByteBuffer, et pouvoir le deserializer.

    Est-ce que qqn sait comment faire pour détecter que j'ai reçu tout l'objet dans mon ByteBuffer et que je peux le deserializer ?

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Je ne connais pas socketChannel, mais avec les sockets classiques un readObjet suffit à lire l'objet en entier, si ce n'est pas le cas, une IOException est levée.
    Si cette méthode n'est pas applicable à SocketChannel, tu peux peut-être avant d'envoyer l'objet, envoyer un "long" contenant la taille de l'objet que tu vas transmettre juste après ?

  3. #3
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    tien regarde ici peut etre cela pourra t'aider :

    http://www.javafaq.nu/java-article-print1102.html

    grosoo modo tant que ta socketChanel est registrer avec le flag OP_READ, il faut que tu gère la lecture des données...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 48
    Points : 21
    Points
    21
    Par défaut
    En m'étant renseigné un peu plus, il semble que le seul moyen soit effectivement d'envoyer la taille de l'objet avant...

  5. #5
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    pas forcément, via la sérialisation, l'envoi d'un objet en entier est faisable. Voir mon précédent post.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2006
    Messages : 48
    Points : 21
    Points
    21
    Par défaut
    C'est faisable avec le sockets bloquants, mais en non bloquants je crois que c'est le seul moyen (à moins d'essayer de deserializer à chaque lecture jusqu'à ce que ca marche... pas très optimal).

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/11/2005, 18h32
  2. [Delphi 6] Comment détecter si un poste est connecté ?
    Par Lung dans le forum Web & réseau
    Réponses: 81
    Dernier message: 22/04/2005, 15h13
  3. Réponses: 3
    Dernier message: 24/01/2005, 08h02
  4. Réponses: 6
    Dernier message: 06/12/2004, 22h18
  5. [Image] détecter que le chargement est terminé
    Par Pascmar dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/07/2004, 19h12

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