我不太喜欢位和字节,所以如果这个问题很愚蠢,我很抱歉。
我对套接字有一些经验,通常用于传输少量纯文本。但是,这一次我必须传输更多可以通过 UDP 分解的数据。
我正在开发一个游戏,其中服务器是用 Java 编写的,我想向客户端发送一个对象数组。由于我是一名网络开发人员,JSON 是传输数据的第一件事,尽管我非常怀疑这是网络中最有效的方式。
在 JSON 的情况下:
{
"players": [
{
"id": "884B0EAA2C7F16BA", // hex string
"name": "some guy", // string
"x": 0, // double
"y": 0, // double
"xv": 0, // double
"yv": 0, // double
"angle": 0, // double
}, {
"id": "AB61F7C2AAE0B488", // hex string
"name": "some other guy", // string
"x": 0, // double
"y": 0, // double
"xv": 0, // double
"yv": 0, // double
"angle": 0, // double
}
]
}
现在,我可以添加一个自定义分隔符来拆分每个玩家的数据,并添加另一个分隔符来拆分数据。在我看来,最有效的方法之一是每行放置玩家的值,并在这些值之间放置一个预定义的字符序列。
884B0EAA2C7F16BA[|]some guy[|]0[|]0[|]0[|]0[|]0
AB61F7C2AAE0B488[|]some other guy[|]0[|]0[|]0[|]0[|]0
虽然这对我有用,但名称等仍然存在一些安全风险。我很难告诉客户包含“[|]”的显示名称是非法的。
最小化传输数据的最有效方法是什么?
任何有关加密的额外信息将不胜感激!