【问题标题】:How to send object to server in java如何在java中将对象发送到服务器
【发布时间】:2011-06-26 13:22:18
【问题描述】:

我在客户端创建我的类并使用服务器在客户端和服务器之间进行通信,但是我在转换这个类时遇到了问题。我将我的类的一个对象从客户端发送到服务器,但服务器注意到这个对象不是来自同一个类。

我的类实现了 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();

【问题讨论】:

  • 能否请您发布您的代码以发送、接收和“转换”您的对象?你试过投吗?
  • 您确定两端都有相同的课程吗?还要检查序列号。
  • 我现在在问题中发布我的代码。请查看我的问题。
  • 这是一个家庭作业/学习问题,对吧?因为否则您可以使用诸如 EJB 之类的框架(它不会解决您当前的问题,但会简化很多服务器代码)

标签: java


【解决方案1】:

创建第三个项目,其中包含客户端和服务器都使用的类并创建一个 jar。然后将该 jar 添加到服务器和客户端应用程序的类路径中。

【讨论】:

    【解决方案2】:

    您序列化的类必须在客户端和服务器端的相同包中。例如,如果您在客户端项目的包 demo.bin 中序列化了类 Demo,则您必须在服务器项目的同一包中创建相同的序列化类。 如果您在一个项目中创建服务器和客户端,请发布一些代码以查看问题所在。

    【讨论】:

    • 不,它们在不同的包中。
    • 为了更正错误,移动相同包中的类,问题将得到解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 2015-10-13
    • 2014-11-06
    • 1970-01-01
    相关资源
    最近更新 更多