そのため、ここ数週間、私は非常に単純なネットワーク プログラミングとプロトコル バッファについて学習してきました。現在、Java クライアントと C# サーバーがあり、プロトコル バッファーを使用してやり取りしています。すべて正常に動作していますが、クライアント (Java) 側で動作させるには、受信メッセージの正確なサイズでバイト配列を作成する必要がありました。そうしないと、パーサーが「プロトコル メッセージに無効なタグが含まれています (ゼロ)"
いくつかの調査を行った後、DatagramPacket 用に作成した配列 (1024 バイト) の末尾にゼロが大量にあることがわかりました (サーバーからの受信データの長さが 27 バイトだったため)。受信データの正確なサイズで配列を作成する必要があります。
質問に関しては、.proto ファイル内のすべてのプロト「メッセージ」のサイズを調べる方法はありますか? ある種の静的な getSize() がない場合、「メッセージ」内にあるフィールドのタイプだけで計算できる方法はありますか?
私が今使っている私のメッセージには 3 つの double が含まれており、今考えているのですが、何が起こっているのかを知っている人から確実な答えが欲しいです。 " 各メッセージ フィールドに?