Apache Mina框架自身实现的过滤器

在Apache Mina中,IoFilter介于IoService和IoHanlder之间,该IO过滤器对所有的输入、输出事件进行过滤,其在Apache Mina中的地位不可忽视,Apache Mina框架自身实现了很多过滤器,现将其作用总结一下:

1、BlacklistFilter:该过滤器称为黑名单过滤器,该过滤器用于阻止特定IP地址的访问Apache Mina服务端。其使用方法如下:

private void addFilter(IoAcceptor acceptor) throws UnknownHostException{
       BlacklistFilter blacklistFilter = new BlacklistFilter();
       InetAddress[] inetAddress = new InetAddress[1];
       inetAddress[0]=InetAddress.getByName("169.254.11.186");
       blacklistFilter.setBlacklist(inetAddress);
       acceptor.getFilterChain().addFirst("black",blacklistFilter);
}

注意:该过滤器只用于Apache Mina服务端。

2、LoggingFilter:该过滤器称为日志过滤器,用于将Apache Mina运行情况输出到指定的日志文件中。其使用方法如下:

服务端:

private void addFilter(IoAcceptor acceptor) throws UnknownHostException{
       acceptor.getFilterChain().addFirst("logger", new LoggingFilter());
}

客户端:

private void addFilter(NioSocketConnector connector) throws UnknownHostException{
        connector.getFilterChain().addFirst("logger", new LoggingFilter());
}

3、ProtocolCodecFilter:该过滤器称为协议解码器,负责对文本字符串进行解编码。。其使用方法如下:

服务端:

private void addFilter(IoAcceptor acceptor) throws UnknownHostException{
       acceptor.getFilterChain().addFirst("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
}

客户端:

private void addFilter(NioSocketConnector connector) throws UnknownHostException{
        connector.getFilterChain().addFirst("codec", new ProtocolCodecFilter(new TextLineCodecFactory(Charset.forName("UTF-8"))));
}

4、

服务端:

客户端:

5、

服务端:

客户端:

6、

服务端:

客户端:

7、

服务端:

客户端:

8、

服务端:

客户端:

9、

服务端:

客户端:

10、

服务端:

客户端:

11、

服务端:

客户端:

12、

服务端:

客户端:

13、

服务端:

客户端:

14、

15、

16、

时间: 2024-10-20 13:29:00

Apache Mina框架自身实现的过滤器的相关文章

Apache Mina框架实践

1.为什么要用Apache Mina框架 ApacheMina Server 是一个网络通信应用框架,Mina 可以帮助我们快速开发高性能.高扩展性的网络通信应用,Mina 提供了事件驱动.异步(Mina 的异步IO 默认使用的是JAVANIO 作为底层支持)操作的编程模型. 2.ApacheMina框架使用 Mina的执行流程: > IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立. > IoProcessor:这个接口在另一个线程上

Apache MINA框架整合到Spring框架中

毕业设计用到了Apache公司的MINA框架作为服务端与安卓客户端的通信框架. 问题:服务端分为两个部分,一个是基于javaEE平台的后台管理系统,另一个是基于MINA框架的服务,整个项目中需求是当tomcat服务器启动的时候,将MINA服务也一起启动起来,相当于服务端程序运行起来后,开启两个服务. 分析:服务端的后台管理系统是采用Spring+Hibernate框架整合搭建的,而当tomcat服务器启动后,会加载spring的配置文件,而spring配置文件中可以自定义监听器,将启动MINA服

使用Apache MINA框架搭建服务端

使用MINA框架搭建服务端步骤: 1.定义一个启动服务的类MinaServer,并实现接口ServletContextListener 2.定义一个处理业务逻辑的类MinaServerHandler,并继承类IoHandlerAdapter 类MinaServer代码例如以下: import java.net.InetSocketAddress; import javax.servlet.ServletContextEvent; import javax.servlet.ServletConte

apache MINA之心跳协议运用

摘要 心跳协议,对基于CS模式的系统开发来说是一种比较常见与有效的连接检测方式,最近在用MINA框架,原本自己写了一个心跳协议实现,后来突然发现MINA本身带有这样一个心跳实现,感于对框架的小小崇拜,在实践的同时研究了一下! MINA TCP/IP SOCKET 心跳 MINA本身提供了一个过滤器类: org.apache.mina.filter.keepalive . KeepAliveFilter ,该过滤器用于在IO空闲的时候发送并且反馈心跳包(keep-alive request/res

网络通信框架Apache MINA

Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架.当前发行的 MINA 版本支持基于 Java NIO 技术的TCP/UDP 应用程序开发.串口通讯程序. Mina 的应用层: 一个设计成熟的开源框架,总是会仅可能的减少侵入性,并在整个项目中找到合适的位置,而不应对整个项目的构架设计产生过多的影响,图 1 就是 MIN

Apache Mina 2.x 框架+源码分析

源码下载 http://www.apache.org/dyn/closer.cgi/mina/mina/2.0.9/apache-mina-2.0.9-src.tar.gz 整体架构 核心过程(IoAcceptor 与 IoConnector通讯) 客户端: 1)通过SocketConnector同服务器端建立连接. 2)链接建立之后I/O的读写交给了I/O Processor线程,I/O Processor是多线程的. 3)通过I/O Processor读取的数据经过IoFilterChain

Apache MINA - Mina 特性说明

Mina 特性说明 MINA 是一个简单而特性强大的网络应用框架,它提供如下特性 : 提供针对多种传输类型的 API : TCP/IP & UDP/IP (通过 Java NIO) 串口通信 (RS232) (通过 RXTX) JVM 内部管道通信 你可以实现自己的网络协议 ! 使用过滤器接口(Filter)作为扩展点 ; 同 Servlet 过滤器很像 低层和高层 API : 低层 : 使用 ByteBuffers 高层 : 使用用户定义的消息对象和编码 高度自定义的线程模型: 单线程 一个线

Apache Mina

初步接触RPC通信框架,目前有很多优秀的RPC框架,今天我参考该博文:http://www.cnblogs.com/xuekyo/archive/2013/03/06/2945826.html 学习了Aapche Mina通信框架.博主介绍的非常详细,包括Mina的源码流程,这里通过阅读博主的文章进行了学习记录,方便以后需要时使用. Apache Mina 是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序.它提供了一个通过Java NIO在不同的传输例如TCP/IP

MINA框架

MINA 框架简介 Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能.高扩展性的网络通信应用,Mina 提供了事件驱动.异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型.Mina 主要有1.x 和2.x 两个分支,这里我们讲解最新版本2.0,如果你使用的是Mina 1.x,那么