一、为什么使用Netty:
Netty是一个高性能、异步事件驱动的NIO框架。相对于使用原生的NIO,Netty API 使用简单,开发门槛低,成熟、稳定,Netty 修复了已经发现的所有 JDK NIO BUG,业务开发人员不需要再为 NIO 的 BUG 而烦恼,经历了大规模的商业应用考验,质量已经得到验证。在互联网、大数据、网络游戏、企业应用、电信软件等众多行业得到成功商用,证明了它可以完全满足不同行业的商业应用。
二、Netty实现通讯的步骤
1、创建两个NIO线程组,一个专门用于网络事件处理,另一个则进行网络通讯读写
2、创建一个ServletBootstrap对象,配置Netty的一系列参数,例如接受传出数据的缓存大小等
3、创建一个实际处理数据的类ChannelInitializer,进行初始化的准备工作
4、绑定端口,执行同步阻塞方法等待服务器端启动即可。
三、相关代码如下:
//服务器端
public class Server {
public static void main(String[] args) throws Exception{
EventLoopGroup pGroup = new NioEventLoopGroup(); //用于处理服务器端接收客户端连接
EventLoopGroup cGroup = new NioEventLoopGroup(); //用于进行网络通讯(网络读写)
ServerBootstrap b = new ServerBootstrap(); //服务工具类,用于服务器通道的一系列配置
b.group(pGroup,cGroup) //绑定2个线程组
.channel(NioServerSocketChannel.class) //指定NIO模式
.option(ChannelOption.SO_BACKLOG,1024 ) //设置TCP缓冲区大小
.option(ChannelOption.SO_SNDBUF,32*1024 ) //设置发送缓冲大小
.option(ChannelOption.SO_RCVBUF,32*1024 ) //设置接收缓冲大小
.option(ChannelOption.SO_KEEPALIVE,true ) //保持连接
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override