[英]Sending serialized Objects multiple times over a Socket
客户端通过套接字多次向服务器发送特定的对象。 代码如下:
public void send(Operation operation, Object o){
try{
out.writeObject(operation);
if (o != null) out.writeObject(o);
out.flush();
} catch (IOException e) {
System.err.println("Couldn't write to OutputStream");
}
}
在对象中是一个从Integer到Integer的HashMap,多数民众赞成在经常更改。 服务器通过以下方式接受消息:
User newUser = (User) oin.readObject();
第一次一切正常时,newUser对象包含新接收到的对象。 但是在执行第二,第三,...之后,newUser对象总是读取旧对象(HashMap包含来自第一次通信的旧值)。 我究竟做错了什么?
提前致谢!
您需要定期调用reset()
以停止建立对象的缓存,从而防止看到这些对象的更改,或者您需要使用writeUnshared()
我会考虑每次在flush()
之前调用reset()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.