快速开发mina(翻译)
来源:互联网 发布:数据挖掘语言排行 编辑:程序博客网 时间:2024/06/06 02:31
本文的源地址为:http://mina.apache.org/mina-project/quick-start-guide.html
本文带你进入如何建立一个基于mina程序的全过程。本文将带领你建立一个时间服务器。
准备工作:
- MINA 2.0.7 Core
- JDK 1.5 或者以上版本
- SLF4 1.3.0 或者以上版本(|http://www.slf4j.org/])
- Log4J 1.2 版本: slf4j-api.jar, slf4j-log4j12.jar, 和Log4J 1.2.x
- Log4J 1.3 版本: slf4j-api.jar, slf4j-log4j13.jar, and Log4J 1.3.x
- java.util.logging 版本: slf4j-api.jar and slf4j-jdk14.jar
- 注意 : 请确认你使用的 slf4j-*.jar 版本是和你的日志框架版本是相符合的. 例如, slf4j-log4j12.jar 和 log4j-1.3.x.jar 不能混合到一起使用, 如果这样使用可能会产生问题
第一步:建立时间服务器:
MinaTimeServer { public static void main(String[] args) { // code will go here next }}
第二步:建立接收connection程序SocketAcceptor
import org.apache.mina.core.service.IoAcceptor;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaTimeServer{ public static void main( String[] args ) { IoAcceptor acceptor = new NioSocketAcceptor(); }}
第三步:定义处理类,并绑定NioSocketAcceptor到指定端口
import java.nio.charset.Charset;import org.apache.mina.core.service.IoAcceptor;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaTimeServer{ public static void main( String[] args ) { IoAcceptor acceptor = new NioSocketAcceptor(); acceptor.getFilterChain().addLast( "logger", new LoggingFilter() ); acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" )))); }}
第四步:增加处理类
import java.io.IOException;import java.nio.charset.Charset;import org.apache.mina.core.service.IoAcceptor;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaTimeServer{ 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() ); }}
第五步:增加 NioSocketAcceptor配置
import java.io.IOException;import java.nio.charset.Charset;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.service.IoAcceptor;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;public class MinaTimeServer{ 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.getSessionConfig().setReadBufferSize( 2048 ); acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 ); }}
第六步:处理类,继承自IoHandlerAdapter
import java.util.Date;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.core.service.IoHandlerAdapter;import org.apache.mina.core.session.IoSession;public class TimeServerHandler extends IoHandlerAdapter{ @Override public void exceptionCaught( IoSession session, Throwable cause ) throws Exception { cause.printStackTrace(); } @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..."); } @Override public void sessionIdle( IoSession session, IdleStatus status ) throws Exception { System.out.println( "IDLE " + session.getIdleCount( status )); }}
第七步:定义时间服务器要监听的地址。
import java.io.IOException;import java.net.InetSocketAddress;import java.nio.charset.Charset;import org.apache.mina.core.service.IoAcceptor;import org.apache.mina.core.session.IdleStatus;import org.apache.mina.filter.codec.ProtocolCodecFilter;import org.apache.mina.filter.codec.textline.TextLineCodecFactory;import org.apache.mina.filter.logging.LoggingFilter;import org.apache.mina.transport.socket.nio.NioSocketAcceptor;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.getSessionConfig().setReadBufferSize( 2048 ); acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 ); acceptor.bind( new InetSocketAddress(PORT) ); }}
- 快速开发mina(翻译)
- mina应用程序架构(翻译)
- mina 之IoService(翻译)
- 基于MINA框架快速开发网络应用程序(转)
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA 框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 基于MINA框架快速开发网络应用程序
- 经典面试题(转载)
- Hibernate的dynamic-insert和dynamic-update的使用
- hibernate 延迟加载(转载)
- 主要几种通信协议的性能比较(转载)
- 详解Java解析XML的四种方法(转载)
- 快速开发mina(翻译)
- mina与spring集成(翻译)
- MINA与JMX集成(翻译)
- mina应用程序架构(翻译)
- mina 之IoService(翻译)
- jquery学习手记(1)
- 如何避免jquery库和其它库的冲突
- 九度笔记之 1337:寻找最长合法括号序列
- jquery学习手记(2)jQuery对象和DOM对象相互转换