我正在用 C# 制作一個游戲,它使用套接字在玩家之間傳輸資料,包括三個用于位置的浮點數和一個用于旋轉的浮點數。目前,我正在使用編碼為二進制的字串執行此操作,我知道這非常低效,并且可能會導致服務器上 5 個播放器每秒更新 32 次的問題,特別是由于必須從浮點數轉換為字串并回傳并拆分字串。我認為序列化可能很好,因為(我假設)它的空間效率和速度。我仍然不確定一些事情:
- 它更節省空間嗎?
- 序列化比轉換為字串更快嗎?
- 我將如何分離物件?(我使用“<EOF>”來知道每個更新以字串結尾的位置)
- 序列化是個好主意嗎?
- 有沒有其他推薦的替代品
uj5u.com熱心網友回復:
我不會使用二進制序列化程式,因為正如這里概述的那樣,它是一個巨大的安全漏洞
uj5u.com熱心網友回復:
這是一個很大的話題。您可以使用眾所周知的序列化庫、通信框架或構建自己的。查看訊息包、協議緩沖區 gRPC等庫和框架。如果你想自己構建它,我建議使用固定框架。也可以查看Stephen Cleary 的關于訊息幀以及新IO 管道的博客條目,特別是如果您想自己構建一個終止符分離的協議。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/347441.html
