我在客户端创建我的类并使用服务器在客户端和服务器之间进行通信,但是转换此类时遇到问题。我将我的类的对象从客户端发送到服务器,但服务器注意到该对象不是来自同一个类。
我的类实现了Serializable,我使用ObjectInputStream和ObjectOutputStream来发送和接收这个对象。
如何让服务器知道此对象来自与客户端相同的类?
//Client site.
toServer = new ObjectOutputStream(myClient.getOutputStream());
fromServer = new ObjectInputStream(myClient.getInputStream());
toServer.writeObject(new MyClass("12345",12345));
//Server site.
fromClient = new ObjectInputStream(connectFromClient.getInputStream());
toClient = new ObjectOutputStream(connectFromClient.getOutputStream());
MyClass message = (MyClass) fromClient.readObject();
答案 0 :(得分:3)
您序列化的类必须位于客户端和服务器端的相同包中。例如,如果您在客户端项目中的包demo.bin中已经序列化了类Demo,则必须在服务器项目的同一个包中创建相同的序列化类。 如果您在一个项目中创建服务器和客户端,请发布一些代码以查看问题所在。
答案 1 :(得分:3)
创建第三个项目,该项目包含客户端和服务器使用的类并创建一个jar。然后将该jar添加到服务器和客户端应用程序的类路径中。