yah*_*ahh 1 java sockets serialization
我在我的代码中有一个非常奇怪的情况,我不明白我发送一个对象让我说通过套接字然后我改变对象中的变量的值并再次发送它,但第二次当我打印它客户端,我得到的值与第一个对象相同.
客户代码:
while(true){
try{
order=(Order)ois.readObject();
System.out.println(order);
}
Run Code Online (Sandbox Code Playgroud)
服务器代码:
public void sendOrder(Order o){
try {
out.writeObject(o);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
主要方法:
Server_Socket ss=new Server_Socket();
ss.sendOrder(o);
o.add(r2);
ss.sendOrder(o);
Run Code Online (Sandbox Code Playgroud)
在发送之前,值在服务器端肯定会发生变化,但我不明白为什么在客户端它没有显示在对象中添加了r2.
这些对象正在被缓存ObjectOutputStream.为防止这种情况,请ObjectOutputStream.reset()在每次写入后调用.如果要发送不包含其他对象的简单对象,请使用writeUnshared()而不是writeObject().
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |