2

Netty 4.0を使用すると、アプレットがフリーズします。Netty 3を使用すると、アプレットは正しく起動します。私のコードは非常に単純で、どこが間違っているのかわかりません。

public class Applet extends JApplet
{
        @Override
    public void init()
    {   
            try {
                new DiscardServer(1020).run();
            } catch (Exception ex) {
                Logger.getLogger(Applet.class.getName()).log(Level.SEVERE, null, ex);
            }
    }
}

public class DiscardServer {
    private final int port;
    public DiscardServer(int port) {
        this.port = port;
    }
    public void run() throws Exception {
        ServerBootstrap b = new ServerBootstrap();
        try {
            b.group(new NioEventLoopGroup(), new NioEventLoopGroup()).channel(NioServerSocketChannel.class).localAddress(port)
             .childHandler(new ChannelInitializer<SocketChannel>() {
                @Override
                public void initChannel(SocketChannel ch) throws Exception {
                    ch.pipeline().addLast(new DiscardServerHandler());
                }
             });
            ChannelFuture f = b.bind().sync();
            f.channel().closeFuture().sync();
        } finally {
            b.shutdown();
        }
    }
}

public class DiscardServerHandler extends ChannelInboundByteHandlerAdapter {
    private static final Logger logger = Logger.getLogger(DiscardServerHandler.class.getName());
    @Override
    public void inboundBufferUpdated(ChannelHandlerContext ctx, ByteBuf in) throws Exception {
        System.out.println("Message " + new String(in.array()));
        in.clear();
    }

    @Override
    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
        logger.log(Level.WARNING,"Unexpected exception from downstream.",cause);
        ctx.close();
    }
}

コンソールの最後の投稿:

network: Cache entry not found [url: file:/D:/java/Applet/dist/lib/netty-4.0.0.Alpha6-20121021.180934-2.jar, version: null]
basic: Plugin2ClassLoader.getPermissions CeilingPolicy allPerms

行を削除すると:

ChannelFuture f = b.bind().sync();

、アプレットは起動しますが、DiscardServer が機能していません。

4

0 に答える 0