netty-01-创建一个服务端的server
这个是一个netty权威指南的例子,一个时间处理的TimeServer的例子,从这个例子我们来了解下netty server的使用:
public class TimeServer {
public void bind(int port) throws Exception {
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup();
try {
ServerBootstrap b = new ServerBootstrap();
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, 1024)
.childHandler(new ChildChannelHandler());
//绑定端口,同步等待成功
ChannelFuture f = b.bind(port).sync();
//等待服务端监听端口关闭
f.channel().closeFuture().sync();
} finally {
bossGroup.shutdownGracefully();
workerGroup.shutdownGracefully();
}
}
private class ChildChannelHandler extends ChannelInitializer<SocketChannel> {
@Override
protected void initChannel(SocketChannel arg0) throws Exception {
arg0.pipeline().addLast(new TimeServerHandler());
}
}
}
从这边可以看出创建一个netty的server总共有几个步骤:
1、bossGroup和workerGroup是?他们是Reactor线程组,创建两个的目的是,一个出来来自客户端的请求,一个用于SocketChannel网络的读写;
2、创建ServerSocketChannel,配置他的模式为NIO也就是非阻塞模式,如上channel(NioServerSocketChannel.class)
3、绑定监听,配置TCP参数,如上blacklog大小

浙公网安备 33010602011771号