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:
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:
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:
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.