【发布时间】:2012-07-12 11:16:43
【问题描述】:
我对位和字节不太感兴趣,所以如果这个问题很愚蠢,我很抱歉。
我对套接字有一些经验,通常用于传输少量纯文本。但是这一次我必须传输更多可以通过 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
虽然这对我有用,但名称等仍然存在一些安全风险。我很难告诉客户包含“[|]”的显示名称是非法的。
什么是最小化传输数据的最有效方法?
任何关于加密的额外信息将不胜感激!
【问题讨论】:
-
"encryption" 不会最小化数据,compression 会最小化数据 - 您可以查看 gzip 压缩类(GZIPInput/output 流)之类的东西?
标签: java sockets encryption udp