Я посылаю строку с символом 2000 в сокет TCP по протоколу netty, как на стороне клиента, так и на сервере, я установил этот конвейер:
socketChannel.pipeline().addLast(
new StringEncoder(),
new StringDecoder(),
new LineBasedFrameDecoder(Integer.MAX_VALUE),
myHandler);
на стороне сервера, у меня есть ChannelInboundHandlerAdapter.
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
// some code
ctx.writeAndFlush(line);
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
ctx.writeAndFlush(Unpooled.EMPTY_BUFFER)
.addListener(ChannelFutureListener.CLOSE);
}
на стороне клиента У меня есть SimpleChannelInboundHandler. но я получаю свою строку неполной. Почему !? Как я могу решить это?
protected void channelRead0(ChannelHandlerContext channelHandlerContext, Object msg) throws Exception {//msg is incomplete}