使用netty在客户端和服务器之间发送大消息

时间:2015-01-20 12:53:54

标签: java netty

我想用netty在客户端和服务器之间发送大消息,但是当我使用netty向服务器发送大消息时,在服务器中我第一次无法获取消息,在服务器中我从客户端发送大消息时使用ChannelHandlerAdapter方法channelReadComplete运行两秒钟,它必须第一次运行。请查看我的客户端代码并告诉我我的问题。

    try {
        Bootstrap b = new Bootstrap();
        b.group(group).channel(NioSocketChannel.class)
                .handler(new ChannelInitializer<SocketChannel>() {
                    @Override
                    protected void initChannel(SocketChannel ch)
                            throws Exception {
                        ChannelPipeline p = ch.pipeline();

                        // if (sslCtx != null) {
                        // p.addLast(sslCtx.newHandler(ch.alloc(), HOST,
                        // PORT));
                        // }
                        System.out.println("initChannel-client");

                        p.addLast(new DiscardClientHandler(),
                                new LengthFieldBasedFrameDecoder(
                                        100 * 1024, 0, 8));

                    }
                });

        // Make the connection attempt.
        ChannelFuture f = b.connect(HOST, PORT).sync();
        // // Wait until the connection is closed.
        // // add by test
        DiscardClient discardClient = new DiscardClient();
        String message = discardClient.reafFile("D:\\log\\log1.txt");


        ByteBuf encoded = f.channel().alloc().buffer(message.length());
        encoded.writeBytes(message.getBytes());
        f.channel().write(encoded);
        f.channel().flush();
        f.channel().closeFuture().sync();
    } finally {
        // group.shutdownGracefully();
    }

最好的问候

0 个答案:

没有答案