首页 > 其他分享 >Netty服务端代码模板

Netty服务端代码模板

时间:2024-06-03 18:32:16浏览次数:19  
标签:Netty Reactor 服务端 workerGroup 模板 new server public channel

/**
* Echoes back any received data from a client.
*/
public final class EchoServer {
   static final int PORT = Integer.parseInt(System.getProperty("port", "8007"));

   public static void main(String[] args) throws Exception {
       // Configure the server.
       //创建主从Reactor线程组
       EventLoopGroup bossGroup = new NioEventLoopGroup(1);
       EventLoopGroup workerGroup = new NioEventLoopGroup();
       final EchoServerHandler serverHandler = new EchoServerHandler();
       try {
           ServerBootstrap b = new ServerBootstrap();
           b.group(bossGroup, workerGroup)//配置主从Reactor
            .channel(NioServerSocketChannel.class)//配置主Reactor中的channel类型
            .option(ChannelOption.SO_BACKLOG, 100)//设置主Reactor中channel的option选项
            .handler(new LoggingHandler(LogLevel.INFO))//设置主Reactor中Channel->pipline->handler
            .childHandler(new ChannelInitializer<SocketChannel>() {//设置从Reactor中注册channel的pipeline
                @Override
                public void initChannel(SocketChannel ch) throws Exception {
                    ChannelPipeline p = ch.pipeline();
                    //p.addLast(new LoggingHandler(LogLevel.INFO));
                    p.addLast(serverHandler);
                }
            });

           // Start the server. 绑定端口启动服务,开始监听accept事件
           ChannelFuture f = b.bind(PORT).sync();
           // Wait until the server socket is closed.
           f.channel().closeFuture().sync();
       } finally {
           // Shut down all event loops to terminate all threads.
           bossGroup.shutdownGracefully();
           workerGroup.shutdownGracefully();
       }
   }
}

标签:Netty,Reactor,服务端,workerGroup,模板,new,server,public,channel
From: https://www.cnblogs.com/JaxYoun/p/18229428

相关文章