zoukankan      html  css  js  c++  java
  • 转: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。

  • 相关阅读:
    编程珠玑(续) 读书笔记 -(第三章 程序员的忏悔)
    java for循环
    java 中的 instanceof
    大脑学习
    voa 2015.4.29
    编程珠玑(续) 读书笔记 -(前言+第一章性能监视工具)
    voa 2015 / 4 / 27
    voa 2015 / 4 / 26
    背包问题 算法实现
    LCS 算法实现
  • 原文地址:https://www.cnblogs.com/phoebus0501/p/1878881.html
Copyright © 2011-2022 走看看