优势
1.API使用简单,开发门槛低
2.功能强大,预置了多种编码功能,支持多种主流协议;
3.定制能力强,可以通过channelHandler对通信框架进行灵活地扩展;
4.性能高,通过与其他业界主流的NIO框架对比,netty的综合性能最优;
5.成熟、稳定,netty修复了已发现的所有jdk nio bug,业务开发人员不需要再为nio的bug而烦恼;
核心组件
Bootstrap、EvenLoop(Group)、Channel
Bootstrap:启动类,注方法类
EvenLoop:事件循环, 可以理解为一个线程
Channel:类似于Socket
事件和 ChannelHandler、ChannelPipeline
事件:把网络上法生的事情,和要做的事情包装成了事件
ChannelHandler:负责处理事件
ChannelPipeline:负责把ChannelHandler组织在一起(责任链模式)
ChannelFuture
出站操作,类似于future异步
代码
核心就是引擎这块
,客户端,服务端万变不离其宗
客户端(固定的)
/**
* 作者:yuyang
* 类说明:基于Netty的客户端
*/
public class EchoClient {
private final int port;
private final String host;
public EchoClient(int port, String host) {
this.port = port;
this.host = host;
}
public void start() throws InterruptedException {
/*线程组*/
EventLoopGroup group = new NioEventLoopGroup();
try {
/*客户端启动必备*/
Bootstrap b = new Bootstrap();
b.group(group)
.channel(NioSocketChannel.class)/*指定使用NIO的通信模式*/
.remoteAddress(new InetSocketAddress(host,port))/*指定服务器的IP地址和端口*/
.handler(new ChannelInitializer<SocketChannel>() {
</