2016-04-26 8 views
1

現在、Googleのプロトコルバッファを使用して複数の整数の配列で情報を送信しています。 問題は、約20個の要素からなる16個以上の配列を持つ1つのオブジェクトを使用すると、配列内の情報の一部が壊れてしまい(別の番号に変わります)、残りの配列がnullになる場合です。 誰もがなぜそれが起こり、どのように私はそれを解決することができますか?Protobuffはデシリアライズ時にデータを失う

+0

ようこそスタックオーバーフロー! [ツアーを受けてください](http://stackoverflow.com/tour)、ヘルプセンター、特に[良い質問をする方法]をご覧ください(http://stackoverflow.com/help/how-聞く、質問する)。あなたのメッセージのテンプレートを提供してください。 ProtoBufメッセージは、有線経由で送信されるのか、ディスクに保存されるのか、内部で使用されますか? –

+0

これは私が使用しているコード行です。 [imgur pic](http://imgur.com/a1GbN8I) 私はそれをクライアントからサーバーに送信して戻します。 –

+0

メッセージ全体がネットワーク経由で送信されたかどうかを確認しましたか?プロトコルバッファメッセージは[自己区切りではない](https://developers.google.com/protocol-buffers/docs/techniques#streaming)であり、メッセージのサイズに関する情報は含まれていません。 Ps。コードを画像(または他の外部リソース)として貼り付けるのは避けてください。質問の一部としてコードを貼り付けるのが望ましいです。 –

答えて

1

画像から、それはprotobuf-netです。私はこれがライブラリ内のバグであるとは思えませんが(私はそれを排除しませんが)このようなエラーの最も一般的な原因は、呼び出し元のコード(つまり、あなたのビット、私たちが見ることができないビット)にされ、そして含ま:テキストファイル、つまり文字列としてバイナリデータを処理する

  • - および/基本的にテキストではないデータにテキストエンコードを使用することもできます。
  • ストリームを正しく読み書きすることはできません(チェックしないでください)。戻り値はReadなど)

コードでを読み書きするコードを表示した場合は、問題を見つけることができると確信していますが、私はそれが上記のもの(または同様のもの)の一つです。

関連する問題