2016-05-27 3 views
1

私は256(byte[256])のバイト配列を持っていて、私は256のバッファサイズを読み込んでいますバイト配列。バイト[]バッファからメッセージを処理し、残ったバイトを次のバッファに先送りする

バイト配列を解析し、バイト配列から2つの "メッセージ"を抽出します。未処理の配列に13バイトを残します。

質問次の256バイトの配列に添付された13バイトを取得するにはどうしたらよいですか?最速の方法で2番目のバイト配列を持つ最初のバイト配列から「部分的なバイト」を処理できますか?

例:事前にみんなで

[256 Array] 
    [+++++++++++++++++++] (1st Buffer) 
    [**************] (Processed in the first iteration...) 
        [----] (Remaining from the 1st Buffer) 
        [----][++++++++++++++++++++](Old Buff + New Buff256[]) 
        [-----+++++++++++++++++++++] <---- (THIS) 
        (How do I get this Combination to process in the most 
        efficient manner so I am not missing messages that may 
        have been chopped off by my buffer size from the old buffer) 

感謝。あなたは、バッファ内の任意の左オーバーを持っているかどうかを確認、別の256のバイトを受信する準備ができたら

+0

ようこそ!表示するコードは?どのような研究をしましたか?これは私たちがあなたを助けるのに役立ちます。がんばろう! – MickyD

+0

@Valmorgalそれは解決策があるように見えます[こちら](http://stackoverflow.com/questions/8221136/fifo-queue-buffer-specialising-in-byte-streams) –

答えて

2

は、代わりに256

の512バイトのバッファを宣言します。その場合は、バッファの先頭にコピーします。

次に、左端の後ろに配置して256バイトを受信します。

あなたのメッセージがそれぞれ256バイトより小さいと仮定すると、あなたのバッファーをオーバーランさせるべきではありません。

+0

@blogbeard返信いただきありがとうございます。私はあなたが言っていることを正確に行うための高速実装を探しています。新しいバッファの先頭に左のバイトを置く。 – Valmorgal

+0

さて、どのくらい速く必要ですか?なぜこれは十分に速くないのですか? – Blorgbeard

関連する問題