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
{
}
}
附件给出测试代码和所需的包
分享到:
相关推荐
Apache Mina是一个基于Java的网络通信框架,专为高性能、高可用性和可扩展性而设计。...在深入学习Mina的过程中,理解IoService及其子类的工作原理,以及如何结合IoHandler实现业务逻辑,对于掌握Mina框架至关重要。
1. **下载使用的Jar包**:在开始Mina2.0的学习之前,你需要从Apache官网或其他可靠的源下载Mina的最新版本库。通常,这包括核心库和其他依赖库,如slf4j用于日志记录。 2. **工程创建配置**:创建一个新的Java项目...
学习Mina不仅涉及网络编程的基本概念,还需要掌握如何利用它的事件驱动模型和非阻塞I/O机制来提高系统的可伸缩性和性能。通过不断实践和深入学习,开发者可以更好地掌握Mina框架,构建出高效、稳定和可维护的网络...
《mina学习笔记》 Apache MINA(Multipurpose Infrastructure for Network Applications)是一个开源框架,主要设计用于简化网络应用程序的开发,尤其是TCP和UDP协议的应用。MINA 提供了一种与网络协议无关的API,...
### Mina2.0学习笔记核心知识点概览 #### 一、Mina入门与环境搭建 **Mina简介** Mina是Apache旗下的一款强大的网络应用框架,专为高性能和高可扩展性网络应用设计,其核心是利用Java NIO技术提供事件驱动的异步API...
最近使用Mina开发一个Java的NIO服务端程序,因此也特意学习了Apache的这个Mina框架。 引言 1 一. Mina入门 2 第一步.下载使用的Jar包 2 第二步.工程创建配置 2 第三步.服务端程序 3 第四步.客户端程序 6 第五步.长...
### Mina初步学习笔记知识点概览 #### 一、Mina简介及下载配置流程 **Mina**,全称**Multipurpose Infrastructure Networked Applications**,是Apache基金会开发的一个高性能网络应用框架,旨在帮助开发者构建高...
### Mina2.0 学习笔记(重点) #### 一、Mina入门 ##### 第一步:下载使用的Jar包 1. **Mina核心库**:登录Mina官网下载`mina2.0.1.zip`,解压后得到`mina-core-2.0.0-M1.jar`。 2. **日志框架SLF4J**:访问SLF4J...
自己整理的一些mina学习资料,内含MINA官方教程(中文版).docx,MINA-2.0.0-M4.chm(英文版),Apache_Mina_Server_2.0中文参考手册V1.0.pdf, 还有mina的包
### 一、Mina入门 #### 第一步. 下载使用的Jar包 Apache Mina的使用首先需要下载其对应的jar包,包括核心库和其他依赖库。这些jar包可以从Apache Mina的官方网站或通过Maven仓库获取,确保包含mina-core和相关的...
了解以上知识点是掌握Apache MINA的基础,通过提供的学习资料,如《Mina2.0学习笔记》、《Apache MINA入门基础》和《Apache MINA Server 2.0中文参考手册》等,可以深入学习MINA的API用法、设计原理和最佳实践。...
### Mina2.0阅读源码笔记知识点梳理 #### 一、Mina 概述与官方资源 **Mina** 是 Apache 基金会下的一个开源项目,它为开发者提供了一个高性能且易于使用的网络应用框架。Mina 的设计目标是帮助用户轻松地开发出高...