上一页 1 ··· 9 10 11 12 13
摘要: IoHandler处理事件在Filter Chain 之后进行。IoHandler包含处理以下几个事件的功能:1. sessionCreated event:session创建事件,对于Tcp而言该事件在连接建立时触发,对Udp而言,该事件在Udp数据包到达时触发。该功能常被用于初始化session... 阅读全文
posted @ 2014-04-24 15:50 marco_tan 阅读(418) 评论(0) 推荐(0) 编辑
摘要: IoFilter 是MINA中的一个核心结构,扮演了非常重要的角色。IoFilter在IoService和IoHandler过滤了所有的I/O 事件和请求。如果你有做个web项目的经验,则很类似于web中的filter。为了加快开发效率,Mina提供了很多的filter,例如:1. LoggingF... 阅读全文
posted @ 2014-04-24 15:36 marco_tan 阅读(414) 评论(0) 推荐(0) 编辑
摘要: Session(会话)是Mina的核心部分:每当一个clinent连接到server时,都会创建一个新的session,并且保存在内存中知道该链接断开。session 是用来存储一些关于连接信息,加上各种服务端在处理请求时可能会用到的信息。Session statesession有一个状态,并且会随... 阅读全文
posted @ 2014-04-24 14:45 marco_tan 阅读(1946) 评论(0) 推荐(0) 编辑
摘要: 从上一篇文章中知道,IoService出于MINA体系中的底层。IoService将会帮你维护网络交互,接受消息,发送消息,管理Sessions,管理连接Connections等等。IoService 是一个接口,服务端的IoAcceptor和客户端的IoConnector均继承了该接口。下面我们将... 阅读全文
posted @ 2014-04-24 14:02 marco_tan 阅读(894) 评论(0) 推荐(0) 编辑
摘要: 基于MINA应用程序结构图:我们可以看出,MINA是应用程序(客户端或服务端)和底层基于TCP,UDP等通讯协议的网络层之间的粘合剂。而且各个模块之间是相互独立的,你只需要在MINA体系基础上设计你的应用程序,而不用去处理复杂的网络层。下图展示了MINA的内部组件以及MINA各个组件的功能。很显然,... 阅读全文
posted @ 2014-04-24 08:57 marco_tan 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request... 阅读全文
posted @ 2014-04-23 15:34 marco_tan 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。缓冲区的分配在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定... 阅读全文
posted @ 2014-04-23 15:08 marco_tan 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的... 阅读全文
posted @ 2014-04-23 14:54 marco_tan 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的I/O速度非常慢,而在Java 1.4中推出了NIO,这是一个面向块的I/O系统,系统以块的方式处理处理,每一个操作在一步中产生或者消费一... 阅读全文
posted @ 2014-04-23 14:35 marco_tan 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Buffer是一个包装了基本数据元素数组的对象,它以及它的子类定义了一系列API用于处理数据缓存。一、属性Buffer有四个基本属性:1、capacity 容量,buffer能够容纳的最大元素数目,在Buffer创建时设定并不能更改2、limit buffer中有效位置数目3、position 下一... 阅读全文
posted @ 2014-04-23 13:51 marco_tan 阅读(189) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13