2012-04-03 6 views
1

nettyを使用して1つのJavaアプリケーションを開発しています。このアプリケーションでは、デバイスからデータを読み込んでデータベースに格納しますが、ここで問題となるのは、デバイスが半分のデータを送信し、デバイスが半分のデータを送信した場合です。 Thread.sleep()メソッドでは、完全なデータを待つことができます。 NettyではNon Blocking Ios(NIO)を使用しています。 NIOが完全なデータを読むのを待つ方法を教えてください。Nettyを使用してデバイスから完全なデータを読み取る方法は?

おかげ

答えて

1

あなたはそれが完了するとChannelBufferは、あなたのビジネスのハンドラに基づいて、取得することを確実にする独自のFrameDecoderを実装する必要があります。

[1]を参照してください。

は、[1] http://netty.io/docs/stable/api/org/jboss/netty/handler/codec/frame/FrameDecoder.html

+0

しかし、ここでは、デバイスがデータを送信しているだけでフレームにすることができます。私の場合、デバイスは壊れたフォーマットのデータを送信しています。 – Raghava

+0

必ずしもそうではありません。私も同じ問題があります。デバイスは壊れたフレームでデータを送信し、私のために働いています。例えば、 LengthBasedFrameDecoderは、デバイスからの全データが到着するまで待ってから、それを次のデコーダに送信します。私はあなたが完全にframedecoderの例を通過することをお勧めし、あなたは解決策を得るでしょう。 – Abe

0

あなたは、単にデータが完了するまで読み込みますReplayingDecoderを、使用することができます。 ​​

関連する問題