Ich versuche, ein Objekt durch Sockets zu senden, aber wenn ich das Objekt im Client lesen möchte, habe ich java.lang.ClassCastException.ClassCastException mit ObjectInputStream in Server-Client-Anwendung
Mein Objekt ist das Folgende und ich habe es in beiden Projekten (Server und Client).
class Data implements Serializable{
int height;
int width;
int max;
int zoom;
int start;
int end;
int xMove;
int yMove;
public Data(int height, int width, int max, int zoom, int start, int end, int xMove, int yMove){
this.height = height;
this.width = width;
this.max = max;
this.zoom = zoom;
this.start = start;
this.end = end;
this.xMove = xMove;
this.yMove = yMove;
}
}
Der Sendeteil:
try{
Data dataToSend = new Data(height, width, max, zoom, start, end, xMove, yMove);
out.writeObject(dataToSend);
}
Der Empfängerteil:
try{
InputStream is = socket.getInputStream();
Data dataToRead = (Data)ois.readObject();
}
und die Fehlermeldung:
java.lang.ClassCastException: lab05_server.Data cannot be cast to lab05_kliens.Data
Ich habe versucht, alles mit dem gleichen Ergebnis. Ich kann meinen Fehler nicht finden.
Vielen Dank für jede Hilfe.
ich dies in beiden Dateien erklärt: private static final lange serialVersionUID = 1L; und jetzt habe ich den folgenden Fehler: Error0: java.io.InvalidClassException: lab05_server.Data; lokale Klasse inkompatibel: stream classdesc serialVersionUID = 1, lokale Klasse serialVersionUID = -5600343588571323555 –
Eine Klasse ist korrekt, da sie die ID als das anzeigt, was Sie deklariert haben: "1", die andere nimmt immer noch die Standard-ID: "-5600343588571323555 " – crumbug
Yepp, ich habe den Fehler gefunden, im Client im (Datas) ois.readObject(); Teil der Konstruktor der Daten wird nicht ausgeführt (ich habe dort einen Test ouptup). Wie kann ich das Casting zum Laufen bringen? Vielen Dank. –