`

MINA框架快速开发网络应用程序

    博客分类:
  • Mina
阅读更多

1.MINA 框架 简介
MINA (Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架 。通过使用MINA 框架 可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA 框架 的应用比较广泛,应用的开源项目有Apache Directory、AsyncWeb、Apache Qpid、QuickFIX/J、Openfire、SubEthaSTMP、red5等。MINA 框架 当前稳定版本是1.1.6,最新的2.0版本目前已经发布了M1版本。
MINA 框架 的特点有:基于java NIO类库开发;采用非阻塞方式的异步传输;事件驱动;支持批量数据传输;支持TCP、UDP协议;控制反转的设计模式(支持Spring);采用优雅的松耦合架构;可灵活的加载过滤器机制;单元测试更容易实现;可自定义线程的数量,以提高运行于多处理器上的性能;采用回调的方式完成调用,线程的使用更容易。

2.MINA 框架 的常用类
类NioSocketAcceptor用于创建服务端监听;
类NioSocketConnector用于创建客户端连接;
类IoSession用来保存会话属性和发送消息;
类IoHandlerAdapter用于定义业务逻辑,常用的方法有:
方法 定义
sessionCreated() 当会话创建时被触发
sessionOpened() 当会话开始时被触发
sessionClosed() 当会话关闭时被触发
sessionIdle() 当会话空闲时被触发
exceptionCaught() 当接口中其他方法抛出异常未被捕获时触发此方法
messageRecieved() 当接收到消息后被触发
messageSent() 当发送消息后被触发


3.服务端应用开发示例
下面将以MINA 2.0M1版本为基础,通过一个范例来演示一下如何使用MINA 框架 进行开发。开发环境为jdk6.0,开发工具NetBeans6.0,所需jar包slf4j-api.jar、slf4j-jdk14.jar、MINA -core-2.0.0-M1.jar。
首先定义一个业务逻辑处理器TimeServerHandler,继承自IoHandlerAdapter,实现的功能有:当客户端创建会话时会显示客户端设备的IP和端口;当客户端输入quit时结束会话;客户端输入其它内容时则向客户端发送当前时间。代码如下:

public class TimeServerHandler extends IoHandlerAdapter 
{ 
@Override 
public void sessionCreated(IoSession session) { 
//显示客户端的ip和端口 
System.out.println(session.getRemoteAddress().toString()); 
} 
@Override 
public void messageReceived( IoSession session, Object message ) throws Exception 
{ 
String str = message.toString(); 
if( str.trim().equalsIgnoreCase("quit") ) { 
session.close();//结束会话 
return; 
} 
Date date = new Date(); 
session.write( date.toString() );//返回当前时间的字符串 
System.out.println("Message written..."); 
} 
} 

 

  再定义一个类Mina TimeServer用来启动服务端:

public class MinaTimeServer 
{ 
private static final int PORT = 9123;//定义监听端口 
public static void main( String[] args ) throws IOException 
{ 
IoAcceptor acceptor = new NioSocketAcceptor(); 
acceptor.getFilterChain().addLast( "logger", new LoggingFilter() ); 
acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));//指定编码过滤器 
acceptor.setHandler( new TimeServerHandler() );//指定业务逻辑处理器 
acceptor.setDefaultLocalAddress( new InetSocketAddress(PORT) );//设置端口号 
acceptor.bind();//启动监听 
} 
} 

 

4.测试
首先运行Mina TimeServer,启动服务端,接着在命令行运行“telnet 127.0.0.1 9123”.

 

5.客户端开发示例
首先定义类TimeClientHandler来处理消息接收事件:

class TimeClientHandler extends IoHandlerAdapter{ 
public TimeClientHandler() { 
} 
@Override 
public void messageReceived(IoSession session, Object message) throws Exception { 
System.out.println(message);//显示接收到的消息 
} 
} 

 

   接着定义Mina TimeClient类用于连接服务端,并向服务端发送消息:

 

public class MinaTimeClient { 
public static void main(String[] args) { 
// 创建客户端连接器. 
NioSocketConnector connector = new NioSocketConnector(); 
connector.getFilterChain().addLast( "logger", new LoggingFilter() ); 
connector.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" )))); //设置编码过滤器 
connector.setConnectTimeout(30); 
connector.setHandler(new TimeClientHandler());//设置事件处理器 
ConnectFuture cf = connector.connect( 
new InetSocketAddress("127.0.0.1", 9123));//建立连接 
cf.awaitUninterruptibly();//等待连接创建完成 
cf.getSession().write("hello");//发送消息 
cf.getSession().write("quit");//发送消息 
cf.getSession().getCloseFuture().awaitUninterruptibly();//等待连接断开 
connector.dispose(); 
} 
} 

 

 6.总结
通过上述示例可以了解到:使用MINA 框架 来开发的网络应用程序代码结构更清晰;MINA 框架 完成了底层的线程管理;MINA 内置的编码器可以满足大多数用户的需求,省去了开发人员消息编码解码的工作。具称使用MINA 开发服务器程序的性能已经逼近使用 C/C++ 语言开发的网络服务。因此,建议在网络应用程序开发过程中尝试使用MINA 框架 来提高我们的开发效率和应用程序的执行效率。

分享到:
评论

相关推荐

    mina框架使用总结.doc

    使用 MINA 框架可以快速开发网络应用程序,例如聊天室、游戏服务器、网络爬虫等。 5. MINA 框架的配置 MINA 框架的配置主要包括 Acceptor 的配置、FilterChain 的配置、Handler 的配置等。 * Acceptor 的配置:...

    mina

    1. **基于MINA框架快速开发网络应用程序(转载).html**:这可能是一个教程或指南,教读者如何利用MINA快速构建网络应用,可能包含基本概念、设置步骤和简单示例。 2. **Apache_Mina_Server_2.0中文参考手册V1.0.pdf*...

    Java springboot 整合mina 框架,nio通讯基础教程,mina框架基础教程.zip

    学习Java NIO,你需要理解这些核心概念,并熟练运用它们来构建高性能的网络应用程序。 Mina框架是一个轻量级的网络通信框架,基于Java NIO构建,它简化了网络编程的复杂性,提供了高效的I/O处理能力。Mina支持多种...

    MINA文档

    - **基于MINA框架快速开发网络应用程序(转载).html**:这篇文章可能介绍了如何使用MINA快速构建网络应用,包括基本的配置和代码示例,帮助初学者快速入门。 - **Apache_Mina_Server_2.0中文参考手册V1.0.pdf**:这是...

    mina框架开发完整架包下载!

    Mina框架是一个高性能、事件驱动的网络应用框架,主要用于简化Java网络编程,特别是TCP和UDP协议的处理。...通过下载的“Mina完整架包”,开发者可以获得所有必要的组件,开始创建自己的网络应用程序。

    MiNA框架新人指导

    MiNA框架是一种基于Java的高性能网络应用程序开发框架,它简化了网络编程中的复杂性,使开发者能够更加专注于业务逻辑而不是底层网络细节。MiNA提供了一套强大的API来处理各种网络通信任务,包括但不限于TCP/IP和UDP...

    mina框架资源包

    Mina框架,全称为Apache Mina,是一款基于Java开发的网络通信应用框架,它提供了一种简单而高性能的方式来构建网络服务,尤其在处理TCP/IP、UDP/IP以及SSL/TLS协议方面表现卓越。本资源包包含了实现Mina框架基础功能...

    mina框架的demo 入门,开发

    Mina框架是一个基于Java的网络通信应用框架,它为高性能、高可用性的网络应用程序提供了强大的支持。本教程将深入探讨Mina框架的入门与开发,帮助你快速掌握这个框架的关键概念和技术。 首先,理解Mina的核心概念至...

    Mina框架+常用JAR包

    Mina框架是一个高性能、异步事件驱动的网络应用程序框架,主要用Java语言编写,用于简化开发TCP、UDP和SSL/TLS协议服务器和客户端的过程。它广泛应用于构建网络服务,如FTP、SMTP、NNTP等协议的服务器,以及任何基于...

    高性能网络架构Mina框架 下载

    2. **在线教程**:互联网上有许多优秀的Mina框架教程,通过这些教程可以快速上手并掌握基本用法。 3. **开源项目**:参与或参考开源社区中的Mina项目可以帮助开发者更好地理解其实际应用场景和技术细节。 综上所述...

    微信小程序 Web MINA框架下载.rar

    通过这个MINA框架,开发者不仅可以快速构建微信小程序的基本结构,还能方便地接入微信的多种服务和功能,如社交分享、微信支付等。此外,MINA框架还支持热更新,使得开发者可以实时发布新版本而无需用户手动更新,...

    使用 Apache MINA 开发高性能网络应用程序

    Apache MINA 是一个高度可扩展的网络应用框架,专注于提供高性能和高可用性的服务。它主要基于 Java NIO(非阻塞I/O)技术,允许开发者构建TCP/UDP网络服务以及串口通信程序。MINA 提供了一套丰富的组件和过滤器系统...

    java mina框架全套

    Java Mina框架是一款高度可扩展且高性能的网络应用开发框架,专为开发网络服务和协议处理应用程序而设计。它提供了一种简洁、高效的API,使得开发者可以轻松地创建基于TCP/IP和UDP/IP协议的服务器和客户端应用。Mina...

    Mina框架入门介绍

    Apache Mina 框架是一个强大的网络通信框架,它的核心目标是简化开发高效且可扩展的网络应用程序。Mina 提供了基于事件驱动和异步IO的编程模型,特别是利用了Java NIO作为其默认的底层支持,这使得开发者能够构建高...

    apache mina 框架实例

    Apache Mina是一个高性能、异步事件驱动的网络应用程序框架,主要用在开发网络通信应用,如TCP/IP和UDP/IP协议的服务器和客户端。这个框架允许开发者以一种简单、高效的方式处理I/O操作,同时提供了丰富的功能,如多...

    Mina通信框架应用示例

    Mina通信框架,全称为Apache MINA,是一个高度可扩展的、基于Java的网络应用程序开发框架。MINA的名字来源于多语言(Multi-purpose Infrastructure for Network Applications),它提供了非阻塞I/O(Non-blocking I/...

    Apache MINA框架相关资料

    Apache MINA(Multipurpose Infrastructure for Network Applications)是一个高性能、异步事件驱动的网络应用程序框架,主要用于简化开发高质量的网络服务。这个框架适用于多种协议,如TCP/IP和UDP/IP,以及NIO(非...

    mina框架开发全部相关jar包

    Mina(Multipurpose Infrastructure for Network Applications)框架是一个用于构建高性能、高可用性的网络应用程序的Java框架,它由Apache软件基金会开发并维护。Mina提供了一种简单而有效的接口,允许开发者处理...

    Mina2.0框架源码剖析.pdf

    Mina2.0是一个基于Java的网络应用框架,提供了一个简洁、灵活的API,帮助开发者快速构建高性能的网络应用程序。下面是Mina2.0框架源码剖析的相关知识点: 一、Mina2.0框架概述 Mina2.0是一个基于Java的网络应用...

    Mina 框架研究与实现

    Mina框架以其卓越的性能和灵活的架构,成为了开发高性能网络应用程序的理想选择。它不仅简化了底层I/O和线程并发的处理,还通过丰富的组件和机制,如IoService、IoHandler、IoFilter及协议编解码器,为开发者提供了...

Global site tag (gtag.js) - Google Analytics