[Client/Serveur] Envoyer image sérialisée
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.
Code Client :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 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 :
Code:
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
|
//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" (voici l'excption : GRAVE: null java.lang.ClassNotFoundException: projeti4b_client.Photo )
Quelqu'un voit où est l'erreur ? (paramètre byte[] de la photo sérialisée?)
Merci d'avance !