尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

第二章Netty,channel主要作用

第二章Netty,channel主要作用 Netty 中的 Channel 是网络通信的核心抽象,它代表一个开放的网络连接(比如TCP Socket连接),也可以是文件、硬件设备等支持I/O操作的组件,是连接底层传输细节和上层业务逻辑的核心桥梁,核心作用可以分为以下几大类:1. 统一封装底层I/O操作它屏蔽了不同传输模式的底层差异,对外提供一套标准化API,同一套业务代码可以无缝对接NIO、OIO、Linux Epoll等多种传输实现,不需要修改上层逻辑。所有基础网络操作都通过它提供的方法完成:客户端通过connect()向远端服务发起连接请求通过read()主动触发从Socket读取数据通过write()将消息写入内部发送缓冲区,配合flush()将数据真正发送到网络中通过disconnect()断开和远端节点的连接,通过close()彻底释放连接资源2. 实现全异步非阻塞通信Channel的所有I/O操作都是异步执行的,调用方法后会立刻返回ChannelFuture对象,不会阻塞当前线程。你可以通过给Future添加监听器的方式,在操作完成后自动收到通知,完全不需要手动阻塞等待结果,从根源上避免了同步IO带来的线程资源浪费。3. 管理连接全生命周期Channel自带完整的状态流转机制,从创建到销毁的全生命周期都可以被精准管控:未注册:刚创建完成,还未绑定到任何EventLoop线程已注册:成功绑定到专属的EventLoop,拥有独立的事件处理线程已连接:和远端节点完成握手,可正常收发数据
返回列表