Mina体系结构

 

 

IoConnector-IOprcessor-IOFilter-Handler-IOAcceptor- 
IOProcess-IOFilter-Handler-IOconnector

2 核心类说明: 
2.1 IOService接口,子接口是IoConnectorIoAcceptor,分别用来描述我们的客户端和服务器端 
getFilterChain:获取过滤链 
setHandler(IoHandler handler):设置我们真正的业务 
getSessionConfig()得到我们的配置信息 
disponse()在我们完成关闭连接的时候所吊用的方法。 
2.2 IoConnector 
connect
SocketAddress remoteAddress)主要用户发起一个连接请求 
setConnectTimeout(int connectTimeout)连接超时的设置 
2.3 IoProcess:是以NIO为基础实现的多线程的方式来完成我们的读写工作。为我们的Filter读写原始数据的多线程的环境。 
通过 NioSocketAcceptor(int processorCount)构造函数可以指定多线程的个数 
通过 NioSocketConnector(int processorCount)构造函数也可以指定多线程的个数。 
2.4 IOFilter 
是在应用层和我们业务层之间的过滤成,自定义过滤器继承IoFilterAdapterhandler处理之前,需要调用相应的过滤器进行过滤 
Client:业务Handler之前会吊用我们的过滤器 
Server:同样在我们直接得到数据的时候,和发送数据的时候也调用了我们的过滤器,然后 
才交给我们的handler 
2.5 IoAcceptor 
bind(SocketAddress loaclAddress)
绑定端口 
getLocalAddress()获得本地IP地址 
2.6 IoSession:描述的是客户端和服务端连接的描述,常常用于发送和接受数据 
主要描述我们的网络通信双方所建立的连接之间的描述 
IOSession:可以发送和读取数据,并且可以设置我们会话的上下文信息 
IOSessionConfig:设置读写缓冲区的一些信息。 
2.7 NioSocketConnector 
connect(SocketChannel handle, SocketAddress remoteAddress)
连接请求 
register(SocketChannel handle, ConnectionRequest request) 注册我们的IO事件 
Selectint timeout)返回选择器 
2.8 IoBuffer:基于JavaNio中的BytesBuffer做了封装,用户操作缓冲区中的数据,包括基本数据类型以及字节数组和一些对象,其本质就是一个可动态扩展的byte数组。 
allocate(int capacity)指定大小空间 
setAutoExpandBoolean autoExpand)可以设置是否支持动态的扩展。 
putString(CharSequence val, CharsetEncoder encoder) 
putShort(short value);
实现将数据放入缓冲区中。 
reset:实现清空数据 
Clear:实现数据的覆盖,

3 实际使用的过程中客户端采用NIOSocketConnector,而客户端采用NioSocketAcceptor

一图胜千言,MINA的核心类图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值