如图所示,右侧是服务端Server,左侧是客户端Client
要点说明:
1.在Server中,在NioEventLoopGroup()中,会有1个selector和线程在不断循环,等待是否有accept事件,在accept事件发生后,才会执行下面的initChannel方法
2.在5中handler在连接之前已经添加完毕,但会等到连接建立后执行
3.Client启动,因为Server一直监听客户端,建立连接
4.那么谁来处理accept事件呢?是Netty内部实现的,它会调用initChannel方法, 即连接建立后调用,客户端也是在连接建立后调用initChannel方法,两者可以认为是同时进行的。
5 .Client的sync()方法会阻塞,直到连接建立;.channel方法代表连接对象,writeAndFlush代表发送数据
6. 比如发送“hello”,会发送到NioEventLoopGroup,处理读事件,然后交给handler依次处理