Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79462
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 340
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-02 20:25
文章分类

全部博文(31)

文章存档

2015年(2)

2014年(29)

我的朋友

发布时间:2014-09-15 17:33:27

  Write相对Read复杂的多,主要有两条线。1. session.write 引发fireWrite事件,经过编码等过滤器的处理,最后将需要写的session写入到flushingSessions中,wakeup相应的Processor线程2. 实际写操作有Processor线程完成,写完后触发messageSent事件。 一. session.write  1. 生成一个WriteRequest.........【阅读全文】

阅读(1749) | 评论(0) | 转发(0)

发布时间:2014-09-15 13:19:18

   过滤器为Mina之精髓,处IO层与业务层之间,起承上启下之用。可用下图形象表之: 一. 事件  主要处理以下事件:点击(此处)折叠或打开    //连接建立     void sessionCreated(IoSession se.........【阅读全文】

阅读(1808) | 评论(0) | 转发(0)

发布时间:2014-09-14 16:50:55

  mina为每个session映射到一个NioProcessor,NioProcessor是一个IO处理机,会开启一个线程Processor,也持有一个专门的Selector,将其拥有的Session的OP_READ注册到该Selector上。因为read返回-1表示断开连接,所以这里也需要处理断开事件。代码跟踪如下:点击(此处)折叠或打开private.........【阅读全文】

阅读(1350) | 评论(0) | 转发(0)

发布时间:2014-09-14 14:18:37

  总的来说,在Acceptor线程的Selector收到OP_ACCEPT事件后,会创建一个NioSession,一个Session表示一个连接。之后它会选择一个NioProcessor处理读写事件。NioProcessor可表示一个IO处理机,用于处理read跟write事件。Mina启动时会创建一个包含ncpus+1个NioProcessor对象的对象池,每个NioProcessor会启动一个Processo.........【阅读全文】

阅读(1175) | 评论(0) | 转发(0)

发布时间:2014-09-13 20:50:15

  在NIO中,通过serversocket的bind函数将channel与socket地址绑定,最后将该channel的op_accept注册到selector中,算是可以接受客户端的连接了。在MINA中,对op_accept事件使用单独一个selector,并可以监听多个channle的op_accept事件。对已经绑定过的SocketAddress,MINA并不检查,若已经绑定过,则会抛出已绑定的.........【阅读全文】

阅读(1219) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册