Witam,
Mam problem z przesyłaniem serializowanych danych między klientem i serwerem.
Ważne jest dla mnie, żeby plik serwera i klienta był w osobnych paczkach (korzystam z Netbeansa), ma to imitować sytuacje, w której klient jest oczywiście na innym komputerze niż serwer. W obu paczkach poza klasami głównymi są identyczne klasy "Pakiet".
Niestety po przesłaniu zserializowanych danych na serwer dostaję komunikat: Exception in thread "main" java.lang.ClassCastException: klient.Pakiet cannot be cast to serwer.Pakiet at serwer.serwer.main
Ale gdy umieszczę klasę serwera i klienta w jednej paczce, przesłanie danych odbywa się prawidłowo...
kody:
import java.io.*;
import java.net.*;
public class serwer {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Socket s = null;
ServerSocket ss = null;
ss = new ServerSocket(6000);
if (ss != null)
System.out.println("Serwer uruchomiony.");
while (true) {
s = ss.accept();
if (s != null) {
System.out.println("Nowe połączenie.");
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
Pakiet p = (Pakiet) ois.readObject();
System.out.println(p.imie +" "+p.nazwisko);
}
}
}
}
import java.io.*;
import java.net.*;
public class klient {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket s = null;
s = new Socket("localhost", 6000);
if (s != null) {
System.out.println("Polaczyles sie serwerem.");
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
Pakiet p = new Pakiet();
p.imie = "jan";
p.nazwisko = "kowalski";
oos.writeObject(pdw);
}
}
}
import java.io.Serializable;
public class Pakiet implements Serializable {
String imie = null;
String nazwisko = null;
}
Ostatni kod Pakietu umieszczam oczywiście zarówno w paczce serwera jak i klienta...