会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
phoebus0501
Powered by
博客园
博客园
|
首页
|
新随笔
|
联系
|
订阅
|
管理
2010年11月16日
转:Mina2.0框架源码剖析(八)
摘要: 这篇来看看AbstractPollingIoConnector抽象类,它用于用于实现客户端连接的轮询策略。处理逻辑基本上和上一篇文章说的AbstractPollingIoAcceptor类似,它继承自AbstractIoConnector,两个泛型参数分别是所处理的会话和客户端socket连接。底层的sockets会被不断检测,并当有任何一个socket需要被处理时就会被唤醒去处理。这个类封装了客...
阅读全文
posted @ 2010-11-16 21:55 phoebus0501
阅读(277)
评论(0)
推荐(0)
编辑
转:Mina2.0框架源码剖析(七)
摘要: 前面介绍完了org.apache.mina.core.session这个包,现在开始进入org.apache.mina.core. polling包。这个包里包含了实现基于轮询策略(比如NIO的select调用或其他类型的I/O轮询系统调用(如epoll,poll,kqueue等)的基类。先来看AbstractPollingIoAcceptor这个抽象基类,它继承自AbstractIoAccept...
阅读全文
posted @ 2010-11-16 21:54 phoebus0501
阅读(274)
评论(0)
推荐(0)
编辑
转:Mina2.0框架源码剖析(五)
摘要: 前面介绍过IoSessionRecycler是负责回收不再使用的会话的接口,ExpiringSessionRecycler是其一个实现类,用于回收超时失效的会话。[代码]sessionMap的键是由本地地址和远端地址共同组成的,值是这两个地址对应的会话。Expirer类实现了Runnable接口,这个线程负责监控ExpiringMap,并把ExpiringMap中超过阀值的元素从ExpiringM...
阅读全文
posted @ 2010-11-16 21:53 phoebus0501
阅读(267)
评论(0)
推荐(0)
编辑
转:Mina2.0框架源码剖析(六)
摘要: 上文的内容还有一些没有结尾,这篇补上。在ExpiringMap类中,使用了一个私有内部类ExpiringObject来表示待检查超时的对象,它包括三个域,键,值,上次访问时间,以及用于上次访问时间这个域的读写锁:[代码]而ExpiringMap中包括了下述几个变量:[代码]现在再来看看IoSession的一个抽象实现类AbstractIoSession。这是它的几个重要的成员变量:[代码]当要结束...
阅读全文
posted @ 2010-11-16 21:53 phoebus0501
阅读(464)
评论(0)
推荐(0)
编辑
转:Mina2.0框架源码剖析(四)
摘要: 前面几篇介绍完了org.apache.mina.core.service这个包,现在进入org.apache.mina.core.session,这个包主要是围绕IoSession展开的,包括会话的方方面面。IoSession接口与底层的传输层类型无关(也就是不管是TCP还是UDP),它表示通信双端的连接。它提供用户自定义属性,可以用于在过滤器和处理器之间交换用户自定义协议相关的信息。每个会话都有一个Service为之提供服务,同时有一个Handler负责此会话的I/O事件处理。最重要的两个方法是read和write,这两个方法都是异步执行,若要真正完成必须在其返回结果上进行等待。关闭会话的方
阅读全文
posted @ 2010-11-16 21:52 phoebus0501
阅读(500)
评论(0)
推荐(0)
编辑
转:Mina2.0框架源码剖析(三)
摘要: AbstractIoAcceptor类继承自AbstractIoService基类,并实现了IoAcceptor接口,它主要的成员变量是本地绑定地址。[代码]在调用bind或unbind方法时需要先获取绑定锁bindLock,具体的绑定操作还是在bind0这个方法中实现的。一旦绑定成功后,就会向服务监听者发出服务激活的事件(ServiceActivated),同理,解除绑定也是在unbind0这个...
阅读全文
posted @ 2010-11-16 21:51 phoebus0501
阅读(403)
评论(0)
推荐(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。第一个要说的接口是IoService,它是所有IoAcc...
阅读全文
posted @ 2010-11-16 21:38 phoebus0501
阅读(433)
评论(0)
推荐(0)
编辑
转:Mina2.0框架源码剖析(二)
摘要: 上一篇介绍了几个核心的接口,这一篇主要介绍实现这些接口的抽象基类。首先是实现IoService接口的AbstractIoService类。它包含了一个Executor来处理到来的事件。每个AbstractIoService都一个AtomicInteger类型的id号,确保每个id的唯一性。它内部的Executor可以选择是从外部传递进构造函数中,也可以在实例内部自行构造,若是后者,则它将是Thre...
阅读全文
posted @ 2010-11-16 21:38 phoebus0501
阅读(251)
评论(0)
推荐(0)
编辑
转:Mina2.0快速入门
摘要: MinaTimeServer.java[代码]TimeServerHandler.java[代码]测试:Client Output Server Output user@myhost:~> telnet 127.0.0.1 9123 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. hello Wed ...
阅读全文
posted @ 2010-11-16 21:36 phoebus0501
阅读(429)
评论(0)
推荐(0)
编辑