0

プラットフォーム:TCP/IP通信を備えたiOS。

以下は私の着信データストリームの例です。

$ PLTIT、HV、0.20、M、0.00、D、-58.70、D、0.30、M * 71
$ PLTIT、HV、1.90、M、0.00、D、-8.30、D、1.90、M * 41

有効なメッセージフレームは次のようになります。

$PLTIT,HV,1.90,M,0.00,D,-8.30,D,1.90,M*41

しかし、私がこれを得る瞬間があるかもしれません:

[time n+0]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+1]  $PLTIT,HV,1.90,M,
[time n+2]  0.00,D,-8.30,D,1.90
[time n+3]  ,M*41
[time n+4]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+5]  $PLTIT,HV,0.20,M,
[time n+6]  0.00,D,-58.70,D,0.30,M*71
[time n+7]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+8]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71

その結果、中央にメッセージフレームが分割されます。

iOSでどのオブジェクト/コンテナーを使用して、解析のためにすべてのデータバイトを正しく収集し、断続的な通信や機器が原因でビットが失われないようにすることができますか?

4

1 に答える 1

0

あらゆる種類の単純なバッファでうまくいくはずです。データが常にテキストである場合は、に追加することもできますNSMutableString

あなたがしなければならないのは、データを追加し、バッファに$文字の複数のインスタンスが含まれているかどうかを確認し(エントリ間の区切り文字であると思います)、それが含まれている場合は、最後に、次のデータチャンクが到着するまで最後のデータをバッファに残します。

于 2011-10-28T12:50:26.267 に答える