netty入门
服务端
public class ServerTest {
public static void main(String[] args) throws InterruptedException {
/**
* bossGroup, 父类的事件循环组只是负责连接,获取到连接后交给 workergroup的子事件循环组。
* 参数的获取,业务的处理等工作均是由workergroup这个子事件循环组来完成。
* 一个事件循环组一样可以完成所有的工作,但是Netty推荐的方式是使用两个事件循环组。
*/
EventLoopGroup bossGroup = new NioEventLoopGroup(); //创建父事件循环组
EventLoopGroup workerGroup = new NioEventLoopGroup(); //创建子类的事件循环组
try{
//创建启动服务器的对象
ServerBootstrap serverBootstrap = new ServerBootstrap();
/**
* group方法接收两个参数, 第一个为父事件循环组,第二个参数为子事件循环组
*/
serverBootstrap.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class) //bossGroup 的通道,只是负责连接
.childHandler(new TestChannelnitializer()); //设置子事件处理器,workerGroup的处理器,
ChannelFuture channelFuture = serverBootstrap.bind(8899).sync(); //绑定端口
channelFuture.channel().closeFuture().sync();
}finally{
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}
}
}