2012-04-03 73 views
1

我有一個Java服務器發送java序列化對象到我的客戶端,並接收java序列化對象執行。如果我的客戶端也是用Java編寫的,這很好,可以讓我在任何問題中進行溝通。通過套接字發送對象,但不同的語言客戶端,如何使對象序列化?

但是現在我想將我的程序擴展到不僅僅是java客戶端,客戶端可能用C語言編寫,目標是C,python或php。所以,我想做一些事情來「修改」客戶端請求到一個java對象,然後發送回服務器。 convent過程中,我可以使用JSON接收並構造一個Java對象給服務器,但是我還需要一個將Java對象轉換爲JSON的層轉換爲客戶端。

我的問題是除了做一個JSON-Java翻譯層,有沒有其他方法可以這樣做?另外,我們可以在服務器端修改一些代碼,但我們必須使用Java作爲我們的主要語言。有什麼建議麼?謝謝。

回答

0

我用的Netty API來設計我的協議,這是相當快的這樣做,如果你能理解一個NIO般字節和緩衝API。 這是一個設計工作的編碼器和解碼器,可以滿足您的需要,有很多默認的編碼器和解碼器的壓縮,使用SSL的實施...

你看起來像問題似乎這一個: JBoss Netty with JSON

我不知道JSON很好,但大多數時候也可以快速和容易地設計自己的協議。

對於任何類型的對象,你需要一個通用的序列化過程,還是隻需要序列化一些字符串和基本類型(整型,簡寫,浮點等等)? 在簡單對象的情況下,你自己做包裝很容易,速度也快很多。如果對象非常簡單,並且我猜想是這種情況,那麼您需要它來設計自己的「協議」規範,這意味着如何將每個對象轉換爲一系列基本類型,字符串和數組。比在每種語言中編寫編碼器和解碼器應該相當容易。

祝你好運

相關問題