EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup();
ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new DiscardServerHandler()); } }).option(ChannelOption.SO_BACKLOG, 128) .childOption(ChannelOption.SO_KEEPALIVE, true) .childOption(ChannelOption.TCP_NODELAY, true); ChannelFuture f = b.bind(LOGIN_SERVER_PORT).sync(); f.channel().closeFuture().sync();
public class DiscardServerHandler extends ChannelInboundHandlerAdapter { @Override public void channelActive(ChannelHandlerContext ctx) throws Exception { // TODO Auto-generated method stub System.out.println("connected"); super.channelActive(ctx); } @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { // (2) System.out.println("reading"); if (!(msg instanceof ByteBuf)) return; try { System.out.println("read...."); } finally { ReferenceCountUtil.release(msg); } }
}