Как прочитать полные данные с устройства, используя Netty? - PullRequest
1 голос
/ 03 апреля 2012

Я разрабатываю одно java-приложение с использованием netty. В этом приложении оно будет считывать данные с устройства и помещать их в базу данных. Но здесь проблема в том, что как только устройство отправляет половину данных, оно будет читать и снова устройство отправляет половину данных.В потоках есть метод Thread.sleep (), который ожидает полных данных.В Netty я использую Non Blocking Ios (NIO).Пожалуйста, скажите мне, как ждать, когда NIO прочитают полные данные.

Спасибо

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Вам нужно будет реализовать свой собственный FrameDecoder, который гарантирует, что ChannelBuffer будет основан на вашем бизнес-обработчике только после его завершения.

См. [1].

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

0 голосов
/ 08 апреля 2012

Вы можете просто использовать ReplayingDecoder, который будет читать, пока данные не будут полными. Здесь вы можете взглянуть на пример.

...