Mina2.0快速入门

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

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


本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/11/27/1342655.html,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值