From b24ad26ce6001ac6f5b722e82016db9753abe600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E4=BF=8A=E9=94=8B?= Date: Mon, 15 Nov 2021 10:25:40 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=AE=8C=E5=96=84=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../socketio/demo/SimpleServer.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java b/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java index 0740ebb..bdbdf39 100644 --- a/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java +++ b/src/main/java/com/corundumstudio/socketio/demo/SimpleServer.java @@ -14,7 +14,19 @@ import io.netty.channel.socket.nio.NioServerSocketChannel; * @copyright Wonhigh Information Technology (Shenzhen) Co.,Ltd. */ public class SimpleServer { - + /** + * netty核心组件 + * + * channel + * channelConfig + * channelId + * Unsafe + * Pipeline + * ChannelHander + * + * @param args + * @throws Exception + */ public static void main(String[] args) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); @@ -25,7 +37,14 @@ public class SimpleServer { * 通过给它设置一系列参数来绑定端口启动服务 */ ServerBootstrap b = new ServerBootstrap(); + /** + * bossGroup负责接收请求 + * workerGroup负责处理请求 + */ b.group(bossGroup, workerGroup) + //最终调用的是ReflectiveChannelFactory.newChannel() + //通过反射创建对象 NioServerSocketChannel + //最终创建channel相当于调用默认构造函数new出一个NioServerSocketChannel对象 .channel(NioServerSocketChannel.class) .handler(new SimpleServerHandler()) .childHandler(new ChannelInitializer() { @@ -34,6 +53,10 @@ public class SimpleServer { } }); + /** + * bind方法第一步通过反射new一个NioServerSocketChannel对象,并且在 + * new的过程中创建一系列核心组件 + */ ChannelFuture f = b.bind(8888).sync(); f.channel().closeFuture().sync();