<转>Mina2.0快速入门

转自:http://blog.csdn.net/phinecos/article/details/4611974

 

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(
"服务器启动");
    }

}

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));        
    }

}

测试:

 

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...

 

参考资料:1MINA v2.0 Quick Start Guide

posted on 2012-10-25 10:42  广州柱子  阅读(139)  评论(0编辑  收藏  举报

导航