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 :

Serialisation objet dans socket


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Par défaut Serialisation objet dans socket
    Bonjour,

    Je suis en train de crée une application qui envoi un objet serialiser à travers une socket.
    L'application fonctionne du serveur vers le client. Par contre le thread de réception du serveur ne fonctionne pas.
    Il renvoi l'erreur "invalid type code: AC".

    Je vous remercie d'avance pour vos réponses.

    Voici mon code.


    ##############################
    Classe Main
    ##############################
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    public static void main(String[] args) {
     
            String coucou = JOptionPane.showInputDialog(null, "client ou serveur", "Type", JOptionPane.OK_OPTION);
            if (coucou.equals("client") || coucou.equals("Client")) client();
            else serveur();
            //if (args.length > 0) client();
            //else serveur();
        }
     
    public static void client ( ) {
            System.out.println("Client");
            // ouvrir une socket sur un port / localhost
            try
            {
                s = new Socket("localhost",62525);
                out = new ObjectOutputStream(s.getOutputStream());
                createMainForm(s,"Client");
            }
            catch(Exception e)
            {
                System.out.println("Erreur creation socket");
            }                         
        }
     
    public static void serveur ( ) {
     
            System.out.println("Serveur");
            // ouvrir une socket sur un port en tant que serveur
            try
            {
                srv = new ServerSocket(62525); //instanci la socket sur le port
                s = srv.accept(); //bloquant
                //Cree la forme principal
                createMainForm(s,"Serveur");
            }
            catch(IOException e)
            {
                System.out.println(e.getMessage());
                System.exit(0);
            }
            catch(Exception e)
            {
                System.out.println("Erreur creation socket et accept");
                System.exit(0);
            }       
        }
     
    private static void createMainForm(Socket s, String title)
        {
            // creation d'un nouveau dessin
            a = new Dessin(s);
    		...
    	}
    ##############################
    Classe Dessin
    ##############################

    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
    37
     
    public Dessin(Socket s)
        {
            formes = new ArrayList();
            this.s  = s;
            try
            {
                in = new ObjectInputStream(s.getInputStream());
                out = new ObjectOutputStream(s.getOutputStream());
            }
    ...
    }		
    public synchronized void readSocket()
         {
            Object f;
            try {
                f = in.readObject();
                //f  = in.readUnshared();
                System.out.println("Flag de l'objet recu : "+ ((Forme)f).getAdd());
     
                if(((Forme)f).getAdd())
                {
                    this.addForme((Forme)f);
                    System.out.println("Ajout de la forme recu");
                }
                else //flag de suppression de forme
                {
                    this.deleteForme((Forme)f);
                    System.out.println("Effacement de la forme recu");
                }
                System.out.println("Objet recu : "+f.toString());
            }
            catch(Exception e)
            {
                System.out.println("Erreur dans la reception des donnees : " + e.getMessage());
            }
         }

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Par défaut
    Bonjour,

    Je me permet de faire un petit up de mon post. En précisant que j'ai l'erreur au niveau de readObject().

    Mais le plus perturbant c'est que l'erreur se produit que dans le thread de reception du serveur. Elle fonctionne très bien dans le thread de réception du client.

    Je vous remercie d'avance pour vos reponse.

Discussions similaires

  1. [Exception] Lecture objet dans socket
    Par chepac dans le forum Langage
    Réponses: 5
    Dernier message: 29/04/2010, 13h50
  2. Réponses: 20
    Dernier message: 23/09/2005, 13h50
  3. acceder a un objet dans un CPropertySheet
    Par ludoviskm dans le forum MFC
    Réponses: 6
    Dernier message: 21/11/2004, 08h58
  4. [CR9] redimensionner un objet dans la section détail !
    Par LIM dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 27/04/2004, 18h19
  5. [arbre] Sauvegarder un objet dans un fichier
    Par Guigui_ dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 00h55

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