QA@IT
«回答へ戻る

回答を投稿

「送信側でデータ長を間違える可能性がある」のであればヘッダが信用できない場合があるという事なので、区切りコードか何かをセットしないと難しいんじゃないでしょうか。

データの前に固定サイズのチェックサムなどがあったとしても、データ長が誤りであったと気付けるだけでどこで区切れば次のデータの始まりかは判断でき無い様に思います(データの後だと同じ理由でチェック用データを取得できないかもしれません)。

BASE64の様にデータ部には特定の文字しか含めずにそれ以外のコードが来た場合は少なくともデータではないと判断できるようにするとか、
データ中には絶対に現れないバイトデータをヘッダの前か後(ヘッダが固定長なら後でも逆算できます)につけるなどの方が簡単ではないかと思います。

信用できる部分、信用できないことがある部分、救いたい部分の範囲(再送が要求できればいいのか、再送は許されず既にもらったデータでなんとかリカバリーできなければいけないのかなど)も整理した方がいいかもしれません。

「送信側でデータ長を間違える可能性がある」のであればヘッダが信用できない場合があるという事なので、区切りコードか何かをセットしないと難しいんじゃないでしょうか。

データの前に固定サイズのチェックサムなどがあったとしても、データ長が誤りであったと気付けるだけでどこで区切れば次のデータの始まりかは判断でき無い様に思います(データの後だと同じ理由でチェック用データを取得できないかもしれません)。

BASE64の様にデータ部には特定の文字しか含めずにそれ以外のコードが来た場合は少なくともデータではないと判断できるようにするとか、
データ中には絶対に現れないバイトデータをヘッダの前か後(ヘッダが固定長なら後でも逆算できます)につけるなどの方が簡単ではないかと思います。

信用できる部分、信用できないことがある部分、救いたい部分の範囲(再送が要求できればいいのか、再送は許されず既にもらったデータでなんとかリカバリーできなければいけないのかなど)も整理した方がいいかもしれません。