netty (三) channel & pipeline

版权声明:转载请注明出处 https://blog.csdn.net/Lee_Suoer/article/details/84999754

channel:

channel关系到一个网络socket或者组件的i/o操作的能力。比如读写,连接,绑定

channel向user提供:

         channel的当前状态,比如是否打开,是否连接。

         channel的配置参数,比如接收数据的buffer大小。 

         channel支持的读写操作等,例如读写,连接,绑定

        和这个channel关联的channelpipeline,它负责处理所有的io事件和请求

All I/O operations are asynchronous 所有的io操作都是异步执行的

 因为所有的io操作都是异步的,所以每次的io调用都能立刻返回结果,但是不保证io的操作都能执行完成。当io操作完成,失败,或者取消的时候你会从你得到的channelfuture对象实例中得到通知。

channel是有层次结构的。产生channel的channel就是它的parent。比如 serversocketchannel接收到socketchannel连接产生新的socketchannel,那么这个serversocketchannel就是socketchannel的parent。这种层次化意义的结构语义取决于channel属于哪种传输的实现。例如,你也可以自己写一个新的channel的实现来产生一些其他的子channel对象来共享一个socket连接。

对于特殊的协议,channel可以向下转型来使用特殊协议的操作。

当使用完channel的时候一定要使用close方法或者close(channelPromise)方法来释放所有的资源。

猜你喜欢

转载自blog.csdn.net/Lee_Suoer/article/details/84999754