MINA2.0
文章平均质量分 57
amozon
这个作者很懒,什么都没留下…
展开
-
Mina2.0 example HttpServer
MINA1.X和MINA2.0的区别主要在于jdk1.4,1.5和jdk1.6对于nio的变化,还有加入了强大的IoBuffer。 1.x中间有个httpserver的例子在2.0当中编译无法通过,其中对于streamhandler和http协议的实现还是很有价值的。 经过改写,终于可以运行了。 使用浏览器访问http://localhost:8080/可以看到运行结果[...2009-02-03 16:24:09 · 235 阅读 · 0 评论 -
Mina2.0框架源码剖析(一)
整个框架最核心的几个包是:org.apache.mina.core.service, org.apache.mina.core.session, org.apache.mina.core.polling以及org.apache.mina.transport.socket。 这一篇先来看org.apache.mina.core.service。第一个要说的接口是IoServic...原创 2009-02-10 14:15:00 · 138 阅读 · 0 评论 -
Mina2.0框架源码剖析(二)
上一篇介绍了几个核心的接口,这一篇主要介绍实现这些接口的抽象基类。首先是实现IoService接口的AbstractIoService类。它包含了一个Executor来处理到来的事件。每个AbstractIoService都一个AtomicInteger类型的id号,确保每个id的唯一性。它内部的Executor可以选择是从外部传递进构造函数中,也可以在实例内部自行构造,若是后...原创 2009-02-10 14:24:50 · 115 阅读 · 0 评论 -
Mina2.0框架源码剖析(三)
AbstractIoAcceptor类继承自AbstractIoService基类,并实现了IoAcceptor接口,它主要的成员变量是本地绑定地址。[code="java"] private final List defaultLocalAddresses = new ArrayList(); private final List unmodifiabl...原创 2009-02-10 14:27:21 · 78 阅读 · 0 评论 -
Mina2.0框架源码剖析(四)
前面几篇介绍完了org.apache.mina.core.service这个包,现在进入org.apache.mina.core.session,这个包主要是围绕IoSession展开的,包括会话的方方面面。 IoSession接口与底层的传输层类型无关(也就是不管是TCP还是UDP),它表示通信双端的连接。它提供用户自定义属性,可以用于在过滤器和处理器之间交换用户自定义协议...原创 2009-02-10 14:30:02 · 122 阅读 · 0 评论 -
Mina2.0框架源码剖析(五)
前面介绍过IoSessionRecycler是负责回收不再使用的会话的接口,ExpiringSessionRecycler是其一个实现类,用于回收超时失效的会话。private ExpiringMap sessionMap;//待处理的会话集private ExpiringMap.Expirer mapExpirer;//负责具体的回收工作sessionMap的键是由本地地址和远端...原创 2009-02-10 14:31:27 · 122 阅读 · 0 评论 -
Mina2.0框架源码剖析(六)
上文的内容还有一些没有结尾,这篇补上。在ExpiringMap类中,使用了一个私有内部类ExpiringObject来表示待检查超时的对象,它包括三个域,键,值,上次访问时间,以及用于上次访问时间这个域的读写锁:[code="java"] private K key; private V value; private long lastAc...原创 2009-02-10 14:33:10 · 165 阅读 · 0 评论 -
Mina2.0框架源码剖析(七)
前面介绍完了org.apache.mina.core.session这个包,现在开始进入org.apache.mina.core. polling包。这个包里包含了实现基于轮询策略(比如NIO的select调用或其他类型的I/O轮询系统调用(如epoll,poll,kqueue等)的基类。先来看AbstractPollingIoAcceptor这个抽象基类,它继承自AbstractIo...原创 2009-02-10 14:37:25 · 148 阅读 · 0 评论 -
Mina2.0框架源码剖析(八)
这篇来看看AbstractPollingIoConnector抽象类,它用于用于实现客户端连接的轮询策略。处理逻辑基本上和上一篇文章说的AbstractPollingIoAcceptor类似,它继承自AbstractIoConnector,两个泛型参数分别是所处理的会话和客户端socket连接。底层的sockets会被不断检测,并当有任何一个socket需要被处理时就会被唤醒去处理。这个类封装了客...原创 2009-02-10 14:40:31 · 153 阅读 · 0 评论