Mina的各个组件功能

Mina的各个组件功能:

(1.)  IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监
听是否有连接被建立。

(Mina底层使用JAVA NIO, 因此它是典型的使用Reactor模式架构的,采用事件驱动编程 , Mina运行用户自定义线程模型,可以是单线程、多线程、线程池等 ,

跟JAVA Socket不一样, Mina是非阻塞的Socket,它内部已经保证了对各个连接(session)的业务和数据的隔离,采用轮询机制为各个session分配CPU资源,

  所以,你就不需要再去考虑不同Socket连接需要用不同的线程去操纵的问题了。)

(2.)  IoProcessor:这个接口在另一个线程上负责检查是否有数据在通道上读写,也就是
说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,
通常在JAVA NIO 编码中,我们都是使用一个Selector,也就是不区分IoService
与 IoProcessor 两个功能接口。另外,IoProcessor 负责调用注册在IoService 上
的过滤器,并在过滤器链之后调用IoHandler。

(3.)  IoFilter:这个接口定义一组拦截器,这些拦截器可以包括日志输出、黑名单过滤、
数据的编码(write 方向)与解码(read 方向)等功能,其中数据的encode 与 decode
是最为重要的、也是你在使用Mina 时最主要关注的地方。

(4.)  IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。

时间: 2024-10-07 01:07:57

Mina的各个组件功能的相关文章

Windows 7或者 server 小技巧 添加 IIS和FTP 组件功能

Windows 7或者 server 小技巧  添加 IIS和FTP 组件功能 在万能的 控制面版 ,添加删除 组件中 . 在IE中输入  http://127.0.0.1 或者 http://localhost 打开如下图片,即表示安装成功. 在控制面版,管理工具中可以打开 IIS管理器.

antd源码分析之——标签页(tabs 2.Tabs关键组件功能实现)

由于ant Tabs组件结构较复杂,共分三部分叙述,本文为目录中第二部分(高亮) 目录 一.组件结构 antd代码结构 rc-ant代码结构 1.组件树状结构 2.Context使用说明 3.rc-tabs中只在example.test中使用的组件说明 二.Tabs关键组件功能实现 1.Tabs(antd) 2.RcTabs 3.Sentinel哨兵 4.InkTabBarNode 三.Tabs的滚动效果 ScrollableTabBarNode 二.Tabs关键组件功能实现 1.Tabs(an

tomcat各个组件功能

Server提供一个接口,由1至多个Service组成,让其它程序可以访问到这个Service集合,同时维护各个Service的生命周期,包括如何初始化,如何结束服务,如何找到别人请求的服务. Service又由1-n个Connector及单个Container组成,只是在Container和Connector外多包了一层,提供各种服务 Connector组件是可选择替换的,负责接收浏览器发过来的TCP连接请求,创建Request/Response,分配线程,将创建的对象传递给Container

tomcat架构各个组件功能

tomcat组件与功能说明 Server:顶层组件,代表一个servlet容器的实体,server组件会在一个指定端口接收命令,比如shutdown 命令会停止服务. Service:service组件包括一到多个connector组件,这些connector组件将收到的请求发往同一个engine组件 Executor:提供一个线程池,可以给tomcat中的组件使用.比如connector组件可以配置使用executor Connector:与客户端直接交互的通讯组件.接收请求,返回响应给客户端

原生js实现vue组件功能

在如今VUE盛行的情况下,我们一直在惊叹于VUE的组件的功能,却不知道,原生js早就已经支持了这个功能. 最近在公开课学到的,js还有很多很多需要探索学习. 下面是一个简单的例子 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>创建标签</title> </head> <body> <x-product>测试

STL 六大组件, 功能与运用概要

1. 容器(constainers) 现成的模版形式的数据结构, 如 vector, deque, set, map... 主要用来存放数据; 2. 算法(algorithms) 我倾向于叫做泛型算法, 常见的有 sort, search, copy, erase... 主要用函数模板实现; 3. 迭代器(iterators) 虽然 C++ 是 C 的超集, 但是一个指针满天飞的 programer 从某种意义上来说不是一个好的 C++er. 迭代器主要扮演容器预算法间的媒介, 所谓的 "泛型指

STL 六大组件 功能与运用

STL 提供六大组件,彼此可以组合套用: 1 容器(containers):各种数据结构,如vector,list,deque,set,map,用来存放数据,从实现的角度来看,STL容器是一种class template,就体积而言,这一部分很像冰山在海角下的比率. 2 算法(algorithms):各种常用算法如:sort,search,copy,erase....从实现的角度来看,STL算法是一种function template. 3 迭代器(iterators):扮演容器与算法之间的胶合

[oldboy-django][2深入django]Form组件功能: 数据格式验证 + 保留上次输入的值(如果有很多输入项,这样正确项不必重复输入,错误项也能提示错误信息)

1 需求:登录或者注册页面存在以下问题 - 无法记住上次提交的内容,(如果有很多输入项,这样正确项不必重复输入,错误项也能提示错误信息)- 重复进行提交数据的校验(数据是否为空,长度大小等等) 2 django的Form组件实现 2.1 Form组件实现数据验证方法 2.1.1 流程操作 - 定义规则(数据的格式,字段必须和表单上name属性一致) class LoginForm(Form): 字段名 = fields.xxFields(参数) # 定义了一个输入框的数据格式要求 实例化对象ob

(尚029)Vue_案例_交互footer组件功能

需要实现界面截图: 1.想到问题: 一旦写一个组件,需要接收哪些属性?? 因为只有属性确定了,标签才好写 todos属性可以确定三个方面的显示 2.做交互("删除已完成任务":接收一个函数) 3.在App.vue中改标签 传:todos和两个函数 4.在methods中定义两个函数 //删除全部已完成任务,要不要参数?怎样判断? //判断做这个事情有没有条件,假如我不传参数,能不能搞定 //说白了 {title:'吃饭',complete:false}{title:'睡觉',compl