Netty服务器
在学习了一段时间Netty后写的一个小demo
1.—添加Maven依赖
io.netty
netty-all
5.0.0.Alpha1
2.—服务端代码
/**
* @program: AGPS
* @description: Netty服务器
* @author: Mr.Liu
* @create: 2019-02-23 16:51
**/
public class NettyServer {
public void bind(int port) throws Exception{
//配置服务端的NIO线程组
// Boss线程:由这个线程池提供的线程是boss种类的,用于创建、连接、绑定socket, (有点像门卫)然后把这些socket传给worker线程池。
// 在服务器端每个监听的socket都有一个boss线程来处理。在客户端,只有一个boss线程来处理所有的socket。
EventLoopGroup bossGroup = new NioEventLoopGroup();
// Worker线程:Worker线程执行所有的异步I/O,即处理操作
EventLoopGroup workerGroup = new NioEventLoopGroup();
try{
// ServerBootstrap 启动NIO服务的辅助启动类,负责初始话netty服务器,并且开始监听端口的socket请求
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup,workerGroup)//将两个NIO线程组当作参数传入ServerBootstrap
.channel(NioServerSocketChannel.class)// 设置非阻塞,用它来建立新accept的连接,用于构造serversocketchannel的工厂类
.option(ChannelOption.SO_BACKLOG,1024)
.childHandler(new ChildChannelHandler());// ChildChannelHandler 对