Apache Mina的IoService接口学习笔记
来源:互联网 发布:ug五轴编程工资多少钱 编辑:程序博客网 时间:2024/05/21 23:51
IoService接口的作用
IoService接口能做好多事情,比如创建客户端服务,创建服务端服务,session的管理,过滤器链的管理,监听网络的连接等等等等,为了区分服务端和客户端服务,所以IoService下面有两个接口分别对应服务端服务和客户端服务
1.IoAcceptor接口,下面是这个接口跟IoService之间的关系
IoAcceptor继承了IoService接口,并添加了IoAcceptor特有的bind()方法,用来启动监听一个端口。
2.IoConnector接口,下面是跟IoService之间的关系
IoConnector接口同样继承了IoService接口,并添加了客户端特有的接口属性及方法,比如connect()方法,成为典型的客户端接口,用来连接一个服务端端口。
3.AbstractIoService实现了IoService中管理服务的方法,比如getFilterChainBuilder方法—获得过滤器链;
—-为什么有了IoService接口还要定义AbstractIoService抽象类?一样为了代码的复用!AbstractIoService抽象类实现了服务端或客户端的共有的管理服务的方法,不需要让IoService接口的子类重复的实现这些方法;AbstractIoService抽象类继承了AbstractIoService抽象类并实现了IoAcceptor接口,成为了拥有管理服务端实现功能的服务端类;我们常用的NioSocketAcceptor就是它的子类;
AbstractIoConnector抽象类继承了AbstractIoService抽象类并实现了IoConnector接口,成为了拥有管理客户端实现功能的客户端类;我们常用的NioSocketConnector就是它的子类;
IoService接口的主要方法
TransportMetadata getTransportMetadata()
这个方法获取传输方式的元数据描述信息,也就是底层到底基于什么的实现,譬如:nio、apr 等。
void addListener(IoServiceListener listener)
这个方法可以为IoService 增加一个监听器,用于监听IoService 的创建、活动、失效、空闲、销毁,具体可以参考IoServiceListener 接口中的方法,这为你参与IoService 的生命周期提供了机会。
void removeListener(IoServiceListener listener)
这个方法用于移除addListener的方法添加的监听器。
boolean isDisposing()
返回 isDisposed() 的状态,当且仅当 isDisposed() 方法被调用完毕才返回TRUE
boolean isDisposed()
返回service的状态,当且仅当service 的当前进程的所有资源已经释放完毕才返回 TRUE
void dispose()
这个方法用于释放service分配的资源,他可能要花费一些时间,用户应该调用 isDisposing() 和 isDisposed() 判断资源是否释放完成,当一个service被关闭的时候都应该调用该方法来进行资源释放
IoHandler getHandler()
返回当前进程serbice关联的handler
void setHandler(IoHandler handler)
这个方法用于向IoService 注册IoHandler,同时有getHandler()方法获取Handler
Map
IoAcceptor接口的主要实现类
NioSocketAcceptor : 非阻塞的server端的Socket(基于TCP协议)
NioDatagramAcceptor: 非阻塞的server端的Socket (基于UDP协议)
AprScoketAcceptor : 基于APR阻塞式的socket
VmPipeScoketAcceptor :基于管道的Socket
IoConnector接口的主要实现类
NioScoketConnector : 非阻塞的client端的Socket
NioDatagramConnector: 基于UDP协议 非阻塞的client端的Socket
AprScoketConnector :基于Apr的scoket
ProxyConnector :提供代理的scoket
SerialScoket : 提供多个端口连接的scoket
VmPipeConnector:基于管道的socket
- Apache Mina的IoService接口学习笔记
- Apache Mina 学习笔记(3) - IoService
- apache mina 学习(五)-----IoService接口及实现
- Mina 学习笔记 Ioservice学习
- Mina学习笔记(4)IoService
- mina学习笔记三:一切的源头IoService
- mina学习笔记三:一切的源头IoService
- mina学习笔记三:一切的源头IoService
- MINA学习之IoService
- MINA 框架之IoService学习
- Apache MINA 框架之IoService介绍
- Apache MINA学习笔记
- apache-Mina学习笔记
- MINA2.0用户手册中文版--第三章 MINA的IO服务接口IoService
- Mina IoService讲解及IoAcceptor和IoConnector接口说明
- Apache Mina的学习应用
- Apache MINA/NIO的学习
- java nio mina 学习笔记2 介绍Mina的TCP的主要接口
- 奇怪的Dll中的stl内存泄露
- tjut 3746
- HDU 1509
- Appcompat导入后出错及Material Design 支持库导入出错的解决办法
- 设计模式之七大原则
- Apache Mina的IoService接口学习笔记
- 数据结构实验之排序七:选课名单
- 【c++ primer 笔记】第七章 类
- 简单套接字通信
- android项目开发过程中的本地缓存总结
- 浅谈CSRF攻击方式
- Linux学前硬件电路(一)
- 实时数据在网页中的实现
- 数据库输入String类型的姓名显示为“??”