私はビットとバイトにあまり興味がないので、この質問がばかげている場合は申し訳ありません。
通常、少量のプレーンテキストを転送するために、ソケットの使用経験があります。ただし今回は、UDP 経由で分割できるデータをさらに多く転送する必要があります。
サーバーが Java で記述されたゲームを開発しており、オブジェクトの配列をクライアントに送信したいと考えています。私は Web 開発者なので、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
}
]
}
これで、プレーヤーごとにデータを分割するためのカスタム区切り文字と、データを分割するための別の区切り文字を追加することができました。私の見解では、最も効果的な方法の 1 つは、プレーヤーの値を行ごとに配置し、定義済みの文字シーケンスを値の間に配置することです。
884B0EAA2C7F16BA[|]some guy[|]0[|]0[|]0[|]0[|]0
AB61F7C2AAE0B488[|]some other guy[|]0[|]0[|]0[|]0[|]0
これは私にとってはうまくいきますが、名前などにはまだいくつかのセキュリティリスクがあります. 「[|]」を含む表示名が違法であることをクライアントに伝えることはほとんどできません。
転送するデータを最小限に抑える最も効果的な方法は何ですか?
暗号化に関する追加情報をいただければ幸いです。