我已成功使用ObjectOutputStream和ObjectInputStream爲我正在編寫的服務器和客戶機序列化和反序列化對象。服務器和客戶端通常在兩臺不同的機器上,但由於它將是一個基於回合的紙牌遊戲,我還希望用戶在本地玩,然後客戶端和服務器都將在同一臺機器上運行。在不使用ObjectOutputStream的情況下複製可序列化的對象
現在,我正在編寫我的連接接口的替代實現。該接口包含諸如void sendToServer(Object)和Object receiveFromServer()的方法。通常,sendToServer(Object)函數將通過ObjectOutputStream發送對象,但由於對象位於同一臺機器上,因此我可以創建一個對象隊列,並在每次調用發送或接收時推送和彈出。但是,問題是我不希望客戶端引用服務器使用的對象,我希望它是一個副本。而且我沒有複製構造函數,並且對象不可複製。
你會在我的情況下做什麼?
如果在同一臺機器上玩,它是否運行在同一個或單獨的JVM中? – 2012-03-19 17:42:23
爲什麼不只是添加一個拷貝構造函數或是可複製的? – 2012-03-19 17:42:40
並告訴我爲什麼你不能簡單地序列化內存中的對象,然後再次反序列化它們以使用對象輸入和輸出流複製它們? – 2012-03-19 17:47:59