如何从服务器netty 4中的客户端获取数据。
在我向客户端发送数据的那一刻,客户端向我发送数据。但处理程序(方法channelRead()
)仅在服务器发送数据后才接收数据
我将在流程列表中显示的问题,我使用netty 4:
ctx.writeAndFlush()
)(确定)我的代码: 处理
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
logger.debug("Start read handler " + ctx.channel().toString());
ByteBuf b = (ByteBuf) msg;
ctx.write(Unpooled.copiedBuffer( new Test.send(ctx,b) );
}
测试
public class Test
public byte[] send(ChannelHandlerContext ctx,ByteBuf b){
// start calculates
ctx.writeAndFlush(Unpooled.copiedBuffer(some data)); - its ok
// calculates .. (during here i should get data from client but nothing happens. Why does the channel blocks receiving data ? )
return response;
}
答案 0 :(得分:2)
你应该有一个ChannelInboundHandler,一旦收到回复就会收到通知。请记住,netty中的所有内容都是非阻塞的。