[Client/Serveur] Envoyer une image sérialisée

VinceSSJ Messages postés 2 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 6 mai 2011 - 6 mai 2011 à 20:51
VinceSSJ Messages postés 2 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 6 mai 2011 - 6 mai 2011 à 21:25
Bonjour,


j'essaie d'envoyer une image sérialisée depuis un Client vers un serveur multi-clients qui a comme rôle de stocker les images qu'on lui envoie.
Problème, je n'arrive pas à envoyer l'image que j'ai sérialisée.


Code Client :

public void EnvoiPhoto(String path, String annot, Boolean visib) throws Exception{

                chemin_p = path.substring(path.lastIndexOf("\"));
                chemin_p = chemin_p.substring(1,chemin_p.length());

                FileInputStream photo = new FileInputStream(path);
                byte[] octets = new byte[photo.available()];

                Photo Ph=new Photo(octets,chemin_p,annot,visib);
                ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
                oos.writeObject(Ph);
                oos.flush();

System.out.println("SOCKET "+socket);
System.out.println("image envoyee");
    }




Code Serveur :

    //BufferedReader => in;
    //PrintWriter => out;


   public void run() {
        try {
          while (true) {                
                if(nb>=20)
                    out.println("trop d'images, veuillez en supprimer");
                else{
                        FileInputStream fichier=new FileInputStream("Ph.ser");
                        ObjectInputStream flux=new ObjectInputStream(socket.getInputStream());
                    try{
                        Photo photoClient = (Photo) flux.readObject();
                        System.out.println("Photo :"+photoClient.getAnnotation());
                        System.out.println("Mot clé :"+photoClient.getNom());                                
                    } catch (Exception ex) {
                        System.err.print("Erreur de reception");
                    }
              }
          }
        } catch(IOException e) {
          System.err.println("IO Exception");
        } finally {
          try {
            socket.close();
            in.close();
            out.close();
          } catch(IOException e) {
            System.err.println("Socket not closed");
          }
        }
    }




Client et Serveur possède tous les 2 la classe Photo qui permet de sérialiser l'image envoyée.
Mais à chaque fois que je lance ça j'ai l'exception "Erreur de reception"

Quelqu'un voit où est l'erreur ? (paramètre byte[] de la photo sérialisée?)

Merci d'avance !

1 réponse

VinceSSJ Messages postés 2 Date d'inscription vendredi 6 mai 2011 Statut Membre Dernière intervention 6 mai 2011
6 mai 2011 à 21:25
Voici l'exception que ça me donne : GRAVE: null java.lang.ClassNotFoundException: projeti4b_client.Photo

Pourtant la classe Photo est bien chez le client (et même chez le serveur)
0
Rejoignez-nous