簡體   English   中英

如何將序列化數據傳輸到服務器並反序列化

[英]How to transfer serialized data to the server and deserelize it

我用enet庫寫了客戶端和服務器端的代碼,也決定用boost庫來序列化數據。 我使用類似這段代碼的東西來發送數據並序列化它

        char message_data[80] = "somedata";
        std::stringstream ss;
        boost::archive::binary_oarchive oa{ ss };
        oa << message_data;
        SendPacket(peer, ss.str());

以及類似這樣的代碼,用於獲取數據並對其進行反序列化

                std::string deser_data;
                std::string some_data = (char*)event.packet->data;
                std::stringstream ss(some_data);
                boost::archive::binary_iarchive ia{ ss };
                ia >> deser_data;

但是這段代碼不起作用,我認為是由於錯誤使用了stringstream,但這並不准確

您是否有某些原因要使用二進制(不可移植、不容忍更改)表示? JSON 已經有點標准了。 是因為它可能...

我會添加一些調試。 你寫的是多長? 你讀的是多長? 如果您轉儲緩沖區,它們在客戶端和服務器上是否相同?

如果您全部內聯(不涉及網絡),代碼是否有效? 也就是說,你能不能寫一個單元測試來做客戶端和服務器端,你構造一個object,序列化它,反序列化成另一個object,然后比較它們?

我會從那開始。

抱歉,這不是一個正確的答案,但是對於簡單的評論來說太長了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM