我還是一個Java新手,並且有一個練習,我在客戶端和服務器之間建立了TCP連接。Java - 通過TCP傳遞對象ArrayList
在客戶端我有一個形狀對象的ArrayList,我添加一個新的三角形,矩形等,並將它們添加到此ArrayList。當我打開連接到服務器時,我遇到了傳遞ArrayList的問題。
你認爲我應該在傳遞給服務器端之前將ArrayList轉換爲字符串?
感謝
我還是一個Java新手,並且有一個練習,我在客戶端和服務器之間建立了TCP連接。Java - 通過TCP傳遞對象ArrayList
在客戶端我有一個形狀對象的ArrayList,我添加一個新的三角形,矩形等,並將它們添加到此ArrayList。當我打開連接到服務器時,我遇到了傳遞ArrayList的問題。
你認爲我應該在傳遞給服務器端之前將ArrayList轉換爲字符串?
感謝
的一點是,雙方只處理一個套接字級別的原始字節。這意味着:你必須*序列化*你的數據。
因此:看看Java序列化和ObjectInput/OutputStreams!
有一點需要注意:你的形狀類需要可序列化!然後,其他任何事情僅僅是使用現有的充分記錄的庫!
TCP允許從客戶端向服務器發送字節。你想通過一個List<Shape>
。因此您需要一種將List<Shape>
轉換爲字節的方法。
有幾種常見的方式來做到這一點:
最後一個是最簡單的一個,但它不允許將形狀發送到另一個Java程序,該程序也具有客戶機在其類路徑中具有的Shape類。
不錯。喜歡它! – GhostCat
確保您的對象是serializable。您不需要將ArrayList轉換爲字符串。
你可以添加你迄今所做的任何代碼示例嗎?是的 - 您需要某種形式的序列化,然後才能通過TCP連接發送對象,請參閱http://stackoverflow.com/questions/707987/java-serialization-over-network例如 –