`

Mina 学习笔记(入门)

    博客分类:
  • Java
阅读更多

Mina 入门
MINA 框架可以省下处理底层IO和线程并发操作,是基于NIO库的开发。

初步整理了下MINA的应用。

程序运行流程:
设定ServerHandler,ClientHandler继承自IoHandlerAdapter
调用 session.write(string) 时将会发送消息(messageSent)

1. run server, server bind
                                  2. run client, to connect
3. sessionOpened
                                  4. sessionCreated + messageSent
5. messageReceived + messageSent

...

基本代码如下:

 

服务端:

public class ServerMain
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        IoAcceptor acceptor = new NioSocketAcceptor();
        acceptor.getSessionConfig().setReadBufferSize(1024000);
        acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory()));
        acceptor.setHandler(new ServerHandler());
        try
        {
            acceptor.bind(new InetSocketAddress(9015));
            System.out.println(System.currentTimeMillis()+"=========  server bind :: " + 9015);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

}

 

public class ServerHandler extends IoHandlerAdapter
{

    @Override
    public void messageReceived(IoSession session, Object message) throws Exception
    {
    }

    @Override
    public void messageSent(IoSession session, Object message) throws Exception
    {
    }

    @Override
    public void sessionOpened(IoSession session) throws Exception
    {
    }

}

 

===============================================================================

 

客户端:

public class ClientMain
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        IoConnector nsa = new NioSocketConnector();
        nsa.getSessionConfig().setReadBufferSize(10240);
        nsa.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory()));
        nsa.setHandler(new ClientHandler());
        IoSession session = null;

        try
        {
            ConnectFuture future = nsa.connect(new InetSocketAddress("192.168.1.1", 9015));
            future.awaitUninterruptibly();
            session = future.getSession();
            session.getCloseFuture().awaitUninterruptibly();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        nsa.dispose();
    }

}

 

public class ClientHandler extends IoHandlerAdapter
{

    @Override
    public void messageReceived(IoSession session, Object message) throws Exception
    {
    }

    @Override
    public void messageSent(IoSession session, Object message) throws Exception
    {
    }

    @Override
    public void sessionCreated(IoSession session) throws Exception
    {
    }

}

 

附件给出测试代码和所需的包

分享到:
评论
1 楼 daijiejun 2011-03-29  
这个我也会 呵呵!

相关推荐

    Mina学习笔记

    Apache Mina是一个基于Java的网络通信框架,专为高性能、高可用性和可扩展性而设计。...在深入学习Mina的过程中,理解IoService及其子类的工作原理,以及如何结合IoHandler实现业务逻辑,对于掌握Mina框架至关重要。

    MIna2.0学习笔记

    1. **下载使用的Jar包**:在开始Mina2.0的学习之前,你需要从Apache官网或其他可靠的源下载Mina的最新版本库。通常,这包括核心库和其他依赖库,如slf4j用于日志记录。 2. **工程创建配置**:创建一个新的Java项目...

    Mina2.0学习笔记(修订版).

    学习Mina不仅涉及网络编程的基本概念,还需要掌握如何利用它的事件驱动模型和非阻塞I/O机制来提高系统的可伸缩性和性能。通过不断实践和深入学习,开发者可以更好地掌握Mina框架,构建出高效、稳定和可维护的网络...

    mina学习笔记

    《mina学习笔记》 Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,尤其是TCP和UDP协议的应用。MINA 提供了一种与网络协议无关的API,...

    Mina2.0学习笔记(修订版)

    ### Mina2.0学习笔记核心知识点概览 #### 一、Mina入门与环境搭建 **Mina简介** Mina是Apache旗下的一款强大的网络应用框架,专为高性能和高可扩展性网络应用设计,其核心是利用Java NIO技术提供事件驱动的异步API...

    Apache_Mina2.0学习笔记

    最近使用Mina开发一个Java的NIO服务端程序,因此也特意学习了Apache的这个Mina框架。 引言 1 一. Mina入门 2 第一步.下载使用的Jar包 2 第二步.工程创建配置 2 第三步.服务端程序 3 第四步.客户端程序 6 第五步.长...

    mina初步学习笔记

    ### Mina初步学习笔记知识点概览 #### 一、Mina简介及下载配置流程 **Mina**,全称**Multipurpose Infrastructure Networked Applications**,是Apache基金会开发的一个高性能网络应用框架,旨在帮助开发者构建高...

    Mina2.0学习笔记(重点)

    ### Mina2.0 学习笔记(重点) #### 一、Mina入门 ##### 第一步:下载使用的Jar包 1. **Mina核心库**:登录Mina官网下载`mina2.0.1.zip`,解压后得到`mina-core-2.0.0-M1.jar`。 2. **日志框架SLF4J**:访问SLF4J...

    mina2.0教程

    自己整理的一些mina学习资料,内含MINA官方教程(中文版).docx,MINA-2.0.0-M4.chm(英文版),Apache_Mina_Server_2.0中文参考手册V1.0.pdf, 还有mina的包

    Apache_Mina2.0学习笔记(初版).doc

    ### 一、Mina入门 #### 第一步. 下载使用的Jar包 Apache Mina的使用首先需要下载其对应的jar包,包括核心库和其他依赖库。这些jar包可以从Apache Mina的官方网站或通过Maven仓库获取,确保包含mina-core和相关的...

    mina2资料-各种教程

    了解以上知识点是掌握Apache MINA的基础,通过提供的学习资料,如《Mina2.0学习笔记》、《Apache MINA入门基础》和《Apache MINA Server 2.0中文参考手册》等,可以深入学习MINA的API用法、设计原理和最佳实践。...

    Mina2.0阅读源码笔记(很值得一看)

    ### Mina2.0阅读源码笔记知识点梳理 #### 一、Mina 概述与官方资源 **Mina** 是 Apache 基金会下的一个开源项目,它为开发者提供了一个高性能且易于使用的网络应用框架。Mina 的设计目标是帮助用户轻松地开发出高...

Global site tag (gtag.js) - Google Analytics