简单的入门代码示例
上一章已经介绍了纯Java几种网络IO的开发步骤及示例,毫无疑问最好的就是NIO,这也是目前最主流的方式,但是这玩意编写复杂,拓展性也不强,在通信上方方面面都需要重写,这不是一般人能搞得定了,所以呀我们得会用框架呀,Netty就是这方面框架中的佼佼者!
基础示例入门
服务端
NettyServer.class
@Slf4j
public class NettyServer{
//1.创建线程组 bossGroup:连接线程 workGroup:工作线程
private final NioEventLoopGroup bossGroup = new NioEventLoopGroup();
private final NioEventLoopGroup workerGroup = new NioEventLoopGroup();
public void serverStart() throws InterruptedException {
try{
// 服务端启动类
ServerBootstrap bootstrap = new ServerBootstrap();
// 传入两个线程组
bootstrap.group(bossGroup, workerGroup)
// 指定Channel 和NIO一样是采用Channel通道的方式通信 所以需要指定服务端通道
.channel(NioServerSocketChannel.class)
//使用指定的端口设置套接字地址
.localAddress(new InetSocketAddress(11111))
//服务端可连接队列数,对应TCP/IP协议listen函数中backlog参数
.option(ChannelOption.SO_BACKLOG, 1024)
//设置数据处理器
.childHandler(new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel channel) throws Exception {
// 在管道中 添加数据处理类
channel.pipeline().addLast(new NettyServerTestHandler());
}
});
// 同步等