• 转: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...

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

    作者:洞庭散人

    出处:http://phinecos.cnblogs.com/    

    本博客遵从Creative Commons Attribution 3.0 License,若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接URL。

  • 相关阅读:
    脏数据
    LeetCode之Sort List
    COCOS2D-X FRAME动画创作随笔
    基于OpenCV性别识别
    Twitter 新一代流处理工具——Heron 该纸币Storm Limitations
    oracle设备
    苏州面对公司发布
    Weblogic监控指标
    mysql TIME_WAIT
    weblogic监控
  • 原文地址:https://www.cnblogs.com/phoebus0501/p/1878881.html
Copyright © 2020-2023  润新知