我一直在尋找一個解決方案,爲此一小會兒,而不是我發現相當匹配的東西。 C#有一個內置的序列化庫,但這不是我所期望的。我需要序列化對象,以便可以將它們序列化,並將頭數據附加到數據包即。 ID號,時間戳,對象類型等,然後能夠發送出去,而不必記住我發送給它的平臺。換句話說,我應該能夠用C++或Java解開我的數據包,而不用比我投入的對象類型和頭數據的順序更多的知識。 C#中的二進制格式化程序會產生一個問題,因爲它被設計爲使用相同的庫在另一端進行反序列化。它還會產生我不想處理的臃腫數據包。我寧願格式化我的數據包。字節轉換的確切對象,類似於C#中的memcpy
| ======== | ======== | ========= | === | ===== ========= |
| packetID |數據類型| timeStamp | etc | serializedObject |
| ======== | ======== | ========= | === | ============= = |
如果我有權訪問memcpy的某些內容以實現此目的,那將會很好,因爲只要對象的數據類型順序被反序列化爲匹配(是的,假設其他語言具有相同的字節大小的數據類型),很容易從一個新的平臺上抓取來自服務器的數據(比如我想抓取Android(Java)或iPhone(obj。C)的數據),而且很少麻煩
爲什麼不使用XML或JSON? – svick
我對使用XML的理解是,它增加了大量的數據包膨脹。由於服務器充當中央集線器,在服務器執行其他任務時將大量數據包提供給大量設備可能會迅速產生大量擁塞。這是一個很好的解決方案,但是我會用一臺很老的機器來運行它,所以即使是一些客戶也可以爲它做很多工作。 –
你也可以使用BSON或protobuf-net ... –