我正在用Java編寫一個程序,其中兩臺或多臺使用UDP的機器之間進行通信。我的應用程序在通過網絡將它們序列化到另一臺機器之後發送對象,在這臺機器上它將被反序列化並處理它。到目前爲止,我成功地發送了一種物體。使用java通過UDP發送/接收不同的對象
我的問題是我希望發件人能夠發送不同類型的對象,並使接收者能夠接收它們並將它們再次轉換爲適當的類型。但是,由於UDP分配了字節緩衝區,因此將數據接收到緩衝區中,因爲不同的對象具有不同的大小,所以不可能投射或檢測接收到的對象的類型。
是否有一種方法可以用來使用UDP發送不同類型的對象,然後在另一端接收它們? (我不要求代碼在這裏,只是一些想法)
感謝
編輯: 我要找發送/接收不同類型的對象不知道是什麼的類型的最佳方式下一個預期對象。假設我有三種對象類型,我希望在任何時候都能收到它們中的任何一種。 布賴恩的評論之後,我又想到了另一件事:如何爲可變大小的數據類型(如字符串,數組等)設置緩衝區大小。當接收到一個UDP數據包時,您首先要分配一個大小的緩衝區來接收該對象。這與我原來的問題有某種關係。
發佈一些代碼會很有用。對象的內容大小可能會有所不同,而不是因爲它們的類型。 – 2010-05-29 14:18:41
難道你不使用buildin java序列化?在這種情況下:只需從內容中發送類名稱,以便接收方可以處理它。 – Daniel 2010-05-29 14:48:17
@Brian:是的,但如果我只在對象中使用原始數據類型,那麼這不會是一個真正的問題。 @Daniel:不,我在這裏使用內置的一個。 – AAA 2010-05-29 20:13:48