[英]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.