Mina2.0快速入门
来源:互联网 发布:java 获取graphics 编辑:程序博客网 时间:2024/06/07 19:35
MinaTimeServer.java
package com.vista;
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 = 6488;
public static void main(String[] args) throws IOException
{
//监听即将到来的TCP连接
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));
System.out.println("服务器启动");
}
}
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 = 6488;
public static void main(String[] args) throws IOException
{
//监听即将到来的TCP连接
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));
System.out.println("服务器启动");
}
}
TimeServerHandler.java
package com.vista;
import java.util.Date;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
public class TimeServerHandler extends IoHandlerAdapter
{
public void exceptionCaught(IoSession session, Throwable cause) throws Exception
{
cause.printStackTrace();
}
public void messageReceived(IoSession session, Object message) throws Exception
{
String strMsg = message.toString();
if(strMsg.trim().equalsIgnoreCase("quit"))
{
session.close();
return;
}
Date date = new Date();
session.write(date.toString());
System.out.println("Message written");
}
public void sessionIdle(IoSession session, IdleStatus status) throws Exception
{
System.out.println("IDLE"+session.getIdleCount(status));
}
}
import java.util.Date;
import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;
public class TimeServerHandler extends IoHandlerAdapter
{
public void exceptionCaught(IoSession session, Throwable cause) throws Exception
{
cause.printStackTrace();
}
public void messageReceived(IoSession session, Object message) throws Exception
{
String strMsg = message.toString();
if(strMsg.trim().equalsIgnoreCase("quit"))
{
session.close();
return;
}
Date date = new Date();
session.write(date.toString());
System.out.println("Message written");
}
public void sessionIdle(IoSession session, IdleStatus status) throws Exception
{
System.out.println("IDLE"+session.getIdleCount(status));
}
}
测试:
Client Output
Server Output
user@myhost:~> telnet 127.0.0.1 9123
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
hello
Wed Oct 17 23:23:36 EDT 2007
quit
Connection closed by foreign host.
user@myhost:~>
MINA Time server started.
Message written...
参考资料:1,MINA v2.0 Quick Start Guide
- Mina2.0快速入门
- MINA2.0用户手册中文版--第一章 MINA2.0入门
- MINA2.0用户手册中文版--第一章 MINA2.0入门
- MINA2.0用户手册中文版--第一章 MINA2.0入门
- Mina2.0入门——例子
- MINA2 之快速上手指南
- MINA2.0 原理
- mina2.0的优化
- MINA2.0 实例--TimeServer
- MINA2.0 原理
- Apache Mina2.0
- apache mina2.0
- MINA2.0原理
- MINA2.0用户手册中文版
- mina2.0 spring
- Mina2.0学习笔记
- MINA2.0 原理
- mina2.0 中文教程1
- Mina2.0框架源码剖析(五)
- Mina2.0框架源码剖析(四)
- Mina2.0框架源码剖析(三)
- Mina2.0框架源码剖析(二)
- Mina2.0框架源码剖析(一)
- Mina2.0快速入门
- 使用Automake和Autoconf生成Makefile
- 《Beginning Linux Programming》读书笔记(四)
- 《Beginning Linux Programming》读书笔记(三)
- 《Beginning Linux Programming》读书笔记(二)
- 《Beginning Linux Programming》读书笔记(一)
- 《Beginning Linux Programming》读书笔记(序)
- Ubuntu学习笔记(2)---安装LumaQQ
- Ubuntu学习笔记(1)---编译源码包