我正在使用netty开发一个java应用程序。在这个应用程序中,它将从设备读取数据并将其放入数据库。但问题是,一旦设备发送它将读取的一半数据,设备再次发送一半数据。在线程Thread.sleep()方法是等待完整的数据。在Netty我使用非阻塞IOS(NIO)。请告诉我如何等待NIO读取完整数据。
由于
答案 0 :(得分:1)
您需要实现自己的FrameDecoder,以确保ChannelBuffer只有在完成后才会基于您的业务处理程序。
见[1]。
[1] http://netty.io/docs/stable/api/org/jboss/netty/handler/codec/frame/FrameDecoder.html
答案 1 :(得分:0)
您可以简单地使用ReplayingDecoder,它将读取直到数据完成。 Here you can take a look for example.