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

avec Java Discussion :

Envoyer des objets via le réseau


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Par défaut Envoyer des objets via le réseau
    Bonjour/Bonsoir à tous

    J'ai un petit souci actuellement pour envoyer des objets via le réseau (en utilisant des sockets TCP).

    Ma classe Client (qui est l'objet que je veux envoyer) :


    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
    package Main;
    import java.io.Serializable;
     
    public class Client implements Serializable {
        String pseudo;
        String mdp;
     
        public Client(String pseudo, String mdp) {
        this.pseudo = pseudo;
        this.mdp = mdp;
        }
     
     
        @Override
        public String toString() {
            return "Pseudo : " + pseudo + " - mdp : " + mdp;
        }
    }
    Ma méthode pour envoyer un objet à partir du serveur :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void listen() {
        System.out.println("Serveur en écoute");
        while(true) {
            try  {
                Socket client = serveur.accept();
                System.out.println(client);
                ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream());
                Client c = new Client("Math", "test");
                out.writeObject(c);
                out.flush();
            } catch(IOException e) {}
        }
    }

    La méthode qui reçoit l'objet du serveur :


    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
    public static void main(String[] args) {
            MainFrame mf = new MainFrame();
     
                    try {
                        Socket sock = new Socket("127.0.0.1", 5600);
                        System.out.println(sock.getLocalSocketAddress());
                        ObjectInputStream in = new ObjectInputStream(sock.getInputStream());
     
                        try {
                            Object obj = in.readObject();
                            Client c = (Client) obj;
                            if(obj instanceof Client) {
                                System.out.println("OK");
                            }
                            if(obj instanceof String) {
                                System.out.println("String");
                            }
                            System.out.println("Objet reçu : "+c);
                        } catch (ClassNotFoundException ex) {}
     
     
                        sock.close();
                    } catch(IOException e) {}
         }

    J'arrive à recevoir un int, un tableau de int, des String, des tableaux de String, des ArrayList, mais ça ne marche pas avec une classe que j'ai créée moi même. Je n'arrive pas à comprendre le problème :/

    Merci pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 15
    Par défaut
    Problème résolu :

    En fait j'avais bien 1 classe Client sur mon serveur et une classe Client sur mon client.

    Sauf que le problème est que pour une bonne "sérialisation" l'objet doit être identique à 100% (le package compris).

    Sur mon serveur le package était "main" et sur mon client mon package était "autre".

    Voila le souci

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

Discussions similaires

  1. Envoyer des objets sur le réseau avec une midlet
    Par asnaeb dans le forum Développement Mobile en Java
    Réponses: 3
    Dernier message: 26/08/2011, 19h40
  2. Réponses: 3
    Dernier message: 07/12/2009, 11h31
  3. Réponses: 2
    Dernier message: 19/09/2007, 10h21
  4. lancer des dts via le réseau
    Par cyriltra dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/08/2006, 17h58
  5. Envoyer des SMS via une application en C++
    Par yakotey dans le forum C++
    Réponses: 1
    Dernier message: 09/01/2006, 19h15

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