2010-11-30 85 views
1

我有一個2維數組通過套接字發送 客戶端被實現爲具有2個線程,一個用於渲染擺動GUI,另一個用於接收來自服務器的數據。使用Java發送一個數組通過套接字

服務器實現爲使得它有2個線程,一個用於收聽傳入請求,然後把該請求到另一個線程來處理請求(與客戶機通信)

一旦客戶端與擺動GUI交互,數據將被構造併發送到服務器(實際上,發送到負責處理特定客戶端的線程),然後服務器處理數據並且以二維陣列向客戶端發送具有二維數組的新數據,其中更新的信息。客戶端可以使用該數組來呈現視圖。

但是,當客戶端第一次發送數據時,它可以,一切都很好。但下一次,客戶端發送新的數據,但它仍然收到舊的(服務器數據仍在更新)

我不知道問題是與套接字本身或線程。

+0

這是對您要完成的內容的一個非常廣泛的概述,但不包括您的實現細節,最可能存在此錯誤的位置。值得注意的是,有很多不同的方式來完成你所要求的,從Java特定的機制,如對象序列化到基於XML的解決方案,如REST和Web服務。包含在客戶端和服務器端執行數據發送和更新的代碼將是謹慎的。 – SplinterReality 2010-11-30 06:14:18

回答

2

如果您使用序列化,請參閱Javadoc for ObjectOutputStream.reset()和ObjectOutputStream.writeUnshared()。

+0

我修改了使用readUnshared()和writeUnshared()發送數據,現在所有的問題都消失了。 – 2010-11-30 06:49:07