Netty简介
Netty是一个异步通信、事件驱动基于NIO编写的高性能高并发的java网络编程框架。下面通过一个简单的服务器应答程序来完成Netty的初步学习。
代码地址:https://gitee.com/ShiXiCheng/study_netty
Netty的编程例子——应答程序
设置开发环境
Jdk1.8
Mvn配置
<dependencies>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.12.Final</version>
</dependency>
</dependencies>
应答服务器
一个Netty服务器主要有三个部分组成
l 服务器配置,配置端口、操作线程池等。
l 通道初始程序,传输的编解码格式、粘包处理、通道处理程序的调用。
l 实现通道处理程序,它包含业务逻辑,即实现服务器通道发生连接、读取信息等事件时的处理。
启动服务器
通过创建SerserBootstrap对象来启动服务器,然后配置对象的相关属性,如端口、线程模式、处理程序等。
import io.netty.bootstrap.ServerBootstrap;
import io.netty.channel.ChannelFuture;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioServerSocketChannel;
public classHelloServer {
private static final int protNumner= 7878;
public static void main(String[] args) throws InterruptedException {
// 事件循环组
/*
* Main函数开始的位置定义了两个工作线程,一个命名为WorkerGroup,另一个命名为BossGroup。
* 都是实例化NioEventLoopGroup。这一点和3.x版本中基本思路是一致的。Worker线程用于管理线程为Boss线程服务。
* EventLoopGroup,它是4.x版本提出来的一个新概念。类似于3.x版本中的线程。用于管理Channel连接的。
* 在main函数的结尾就用到了EventLoopGroup提供的便捷的方法,shutdownGraceFully(),
* 翻译为中文就是优雅的全部关闭。
*/
EventLoopGroupbossGroup= newNioEventLoopGroup();
EventLoopGroupworkerGroup