2010-11-14 30 views
2

我需要用C++/Obj-C編寫一個服務器,它可以接收來自以Java和C++構建的多個客戶端的流式數據。挑戰:我需要高效地序列化和反序列化數據結構。一個C++客戶端將生成128x96x2維浮點數組,加上一些元數據,每秒約30次(視頻功能)。一個Java客戶端將生成一個更小的特徵向量 - 大概200個值,每秒1-10次。我已經放棄了自己去實施自己的實施,但在此之前,我想問一些建議。適用於套接字流的C++/Java序列化庫?

回答

5

Google Protocol Buffers支持您所需的語言和序列化數據結構的流,但我不知道如何最好地處理這些大型數組。有一些正在進行的工作here在這個Java的protobuf領域 - 背景here

考慮到這一點,您可能可以使用Java和C++ protobuf生成一些可以使用C++中的自定義代碼來處理該分支中的Java數組編碼的東西。

+0

這看起來不錯,謝謝參考!教程/文檔似乎只顯示如何編碼單個值,但不是數組。 「重複」關鍵字似乎在大範圍內,但依靠將大數組中的每個元素推入重複變量似乎是sl sl不馴。 – Alterscape 2010-11-14 18:49:39

+0

@Alterscape - 是的,這是目前公認的庫的缺陷,聽起來像他們正在研究Java解決方案,但我沒有看這個代碼 - 如果這是一個改進,你可以添加你自己的編碼在C++方面,我想(它是開源的)。 – 2010-11-14 20:50:53