【发布时间】:2011-09-21 19:17:40
【问题描述】:
(我知道这可以在 RMI 中完成,但我需要使用套接字来执行此操作,因为我发现如果使用 RMI 方法可能会有一些设置过程)
请查看http://www.coderanch.com/t/205325/sockets/java/send-any-java-Object-through的简单客户端-服务器代码
在这个程序中,SimpleServer 发送的两个对象的顺序是 SimpleClient 知道的。
即:服务器
oos.writeObject(new testobject(1,"object from client"));
oos.writeObject(new String("another object from the client"));
客户端根据接收对象的顺序进行转换。但我想避免这种性质并让客户端随时发送任何对象,因此服务器也应该能够相应地处理发送的每个对象并返回结果。
testobject to = (testobject)ois.readObject();
System.out.println(to.id);}
System.out.println((String)ois.readObject());
有没有办法“标记”正在发送的对象,以便可以通过服务器中的简单“if”语句来确定操作?
或
有没有更好的方法来使用 服务器返回的 ResultSet 而不是我的对象序列化方法?
提前致谢。
谢谢
【问题讨论】:
-
您使用 ObjectInputStream 读取的对象已经具有正确的运行时类型 - 转换不会改变它。所以在某种程度上他们已经被“标记”了,你可以打电话给
getClass()或在他们身上使用instanceof并根据它来处理它们。 -
不要使用
new String("another object from the client"),它几乎总是毫无意义的。
标签: java sockets serialization client-server