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 de communication par sockets


Sujet :

Entrée/Sortie Java

  1. #21
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    C'est un problème connu avec WriteObjet et ReadObjet (sérialisation d'objet). La solution a été publié dans ce forum mais je ne sais plus par qui. Fait un recherche...

  2. #22
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    tu peux expliquer pourquoi ça vient de ObjectInputStream ?? Moi je ne vois pas, débutant, mais ayant déjà fait une appli réseau de ce type, je n'ai jamais au de tel problème.

  3. #23
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Moi j'avais déjà fait des recherches et voilà:

    Le sujet ou message que vous recherchez n'existe pas

    Donc oui je veux bien la solution, parce que la création d'un clone ne marche pas, or je ne vois pas bien ce que je peux faire de plus pour créer une nouvelle instance d'objet, surtout que j'ai besoin de garder mon objet de base qui est modifié par plusieurs classes...

  4. #24
    Membre averti Avatar de soad
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    520
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 520
    Points : 439
    Points
    439
    Par défaut
    essai peut etre de faire un truc comme ca:

    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
     
     
    public class Matrice implements Sera... {
     
      Variable var1;
      Variable var2;
      Variable var3;
      ...
     
      public Matrice() {
        ...
      }
     
      public Matrice(Matrice m) {
        ...
     
        var1 = m.var1;
        var2 = m.var2;
        var3 = m.var3;
     
        // faire ca pour toute tes variables
     
      }
     
     
     
     
    /*
    *
    * Tes méthode ...
    *
    */
     
    }

    et avant d'envoyer ton objet tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    writeObject(new Matrice(maVieilleMatrice));

  5. #25
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Cette méthode a l'air de fonctionner, mais je trouve pas ça super rigoureux en terme de conception, je trouve ça même très bizarre, et je comprends pas bien l'intérêt du mécanisme qui se trouve derrière...

    Sur ce je vais essayer de continuer, mais je doute que cette solution ne soit pas sans problèmes...

    Merci à tous!

  6. #26
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 860
    Points : 22 900
    Points
    22 900
    Billets dans le blog
    51
    Par défaut
    tu peux expliquer pourquoi ça vient de ObjectInputStream ??
    Flux d'envoi objet cote serveur : "Ok, tiens-toi pret je t'envoie l'objet Ms serialise. Au fait c'est la meme instance que la precedente, juste ses membres ont change."

    Flux de reception objet cote client : "Oh mais j'ai deja recupere cette instance avant et a l'epoque j'avais cree un objet Mc. Hum je vais pas m'embeter a allouer un nouvel objet en memoire juste pour ca : je vide le flux et je retourne la reference Mc de ce que j'ai deserialisee auparavant".

    Et voila pif-paf le client ne recupere pas les membres mis-a-jour

    Encore une fois ce n'est que theorique mais ca ressemble bien a ce qu'il t'arrive.
    Instance identique = pas chercher a comprendre = on garde la meme.
    Quand je disais de bien faire gaffe aux effets non-desires des optimisations dans une discussion precedente..... gnack gnack gnack

  7. #27
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Peut être une erreur ! mais je suis pas sûr, tu déclares ta Matrice après ta class anonyme interne en plus il n'y a pas de modificateur d'accès !!, il me semble d'ordinaire que ça se place au tout début du programme les variables d'instance (peut-être une question d'habitude )?!
    Je comprends pas trop ta déclaration de variable en fait !

  8. #28
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    tu pourras nous dire si tu trouves stp??

    Merci ./

  9. #29
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Citation Envoyé par Linio
    Cette méthode a l'air de fonctionner, mais je trouve pas ça super rigoureux en terme de conception...
    Ben cette méthode marche.
    Et le mécanisme expliqué par bouye est bien ce qui a l'air de se produire.
    Je reste on ne peut plus dubitatif par le côté intéressant de cette optimisation car un flux de fichier en terme de conception (pour l'avoir utilisé plusieurs fois que ce soit en réseau ou autre), se voit souvent passer les mêmes objets.

    Bref si une vraie réponse pouvait être apportée quant à ce mécanisme précis ce serait chouette.

    (Par contre j'ai pas pigé le problème de ma déclaration de variables... : )

  10. #30
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    []Data matrix[][] = new Data[20][20]; [/]
    comme elle a été déclarée, c'est une variable d'instance ?! je disais juste qu'en général elle se place au tout début de la classe en premier ?! de plus il me semble plus "clair" de lui affecter un modificateur d'accès (public, private, static...), je ne sais pas lequel est par défaut.
    Perso j'ai pas compris où était le problème sinon dans ton poste, mais si ton problème est résolu, c'est l'essentiel...

  11. #31
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 860
    Points : 22 900
    Points
    22 900
    Billets dans le blog
    51
    Par défaut
    je disais juste qu'en général elle se place au tout début de la classe en premier ?!
    C'est juste pour des questions de lisibilité principalement (moi c'est ce que je préfère).
    D'autres préfèrent déclarer les variables près des méthodes où elles sont utilisée pour grouper par fonctionalités au contraire (voir le code source de certaines classes du JDK).

    je ne sais pas lequel est par défaut
    package protected tout simplement et c'est parfois mieux que protected car encore plus restrictif : accessible à tout le package mais pas en dehors. (rappel : protected = accessible à tous le package + sous-classes dans les autres packages)

    public >= protected >= rien (package protected) >= private

    http://java.sun.com/docs/books/jls/s...oc.html#104285

  12. #32
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Mais elle est déclarée au début avec les autres variables!
    Et de fait le choix de friendly est voulu.

  13. #33
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    Merci Bouye !

  14. #34
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par soad
    essai peut etre de faire un truc comme ca:

    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
     
     
    public class Matrice implements Sera... {
     
      Variable var1;
      Variable var2;
      Variable var3;
      ...
     
      public Matrice() {
        ...
      }
     
      public Matrice(Matrice m) {
        ...
     
        var1 = m.var1;
        var2 = m.var2;
        var3 = m.var3;
     
        // faire ca pour toute tes variables
     
      }
     
     
     
     
    /*
    *
    * Tes méthode ...
    *
    */
     
    }

    et avant d'envoyer ton objet tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    writeObject(new Matrice(maVieilleMatrice));
    Cette méthode ne fonctionne pas pour moi, avez vous une autre solution ?
    Je galère trop la !

Discussions similaires

  1. Problème de communication par socket
    Par FabaCoeur dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 22/06/2010, 10h00
  2. Réponses: 5
    Dernier message: 29/03/2007, 22h26
  3. Communication par socket
    Par cybermarcel dans le forum Ruby
    Réponses: 5
    Dernier message: 14/01/2007, 23h08
  4. Problème de communication par socket
    Par odjosc dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 20/06/2006, 14h57
  5. [Omnis] Communication par Socket
    Par y0p dans le forum WinDev
    Réponses: 4
    Dernier message: 15/06/2006, 09h02

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