Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从客户端立即读取数据?_Java_Netty - Fatal编程技术网

Java 如何从客户端立即读取数据?

Java 如何从客户端立即读取数据?,java,netty,Java,Netty,如何从服务器netty 4中的客户端立即获取数据 在我向客户端发送数据的那个一刻,客户端向我发送数据。但处理程序(方法channelRead())仅在服务器发送数据之后才接收数据 我将在流程列表中显示的问题,我使用netty 4: 从客户端获取数据 开始计算响应 将一些服务数据作为(ctx.writeAndFlush())发送到客户端(确定) 继续计算响应 应该从客户端获取数据(这里有个问题) 向客户端发送计算响应(发送确定) 我的代码: 处理者 试验 您应该有一个ChannelInboundH

如何从服务器netty 4中的客户端立即获取数据

在我向客户端发送数据的那个一刻,客户端向我发送数据。但处理程序(方法
channelRead()
)仅在服务器发送数据之后才接收数据

我将在流程列表中显示的问题,我使用netty 4:

  • 从客户端获取数据
  • 开始计算响应
  • 将一些服务数据作为(
    ctx.writeAndFlush()
    )发送到客户端(确定)
  • 继续计算响应
  • 应该从客户端获取数据(这里有个问题)
  • 向客户端发送计算响应(发送确定)
  • 我的代码: 处理者

    试验


    您应该有一个ChannelInboundHandler,它将在收到响应后得到通知。记住,netty中的所有内容都是非阻塞的

     @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;
    
    }