mina2.0 中文教程1

mina简单说就是实现快速,方便,规范的cs结构的服务器,下面简单举例:


编写时间服务器:

public class MinaTimeServer {
     private static final int PORT = 9123;

    public static void main(String[] args) throws Exception {
        // 创建一个接收器
        IoAcceptor acceptor = new NioSocketAcceptor();
        
        // 注册过滤器,过滤器的作用类似于servlet的filter
        acceptor.getFilterChain().addLast( "logger", new LoggingFilter() );
        acceptor.getFilterChain().addLast( "codec", new ProtocolCodecFilter( new TextLineCodecFactory( Charset.forName( "UTF-8" ))));
   
        // 添加自定义的业务处理
        acceptor.setHandler( new TimeServerHandler() );

        // 设置read缓冲区和空闲时间
        acceptor.getSessionConfig().setReadBufferSize( 2048 );
        acceptor.getSessionConfig().setIdleTime( IdleStatus.BOTH_IDLE, 10 );
        
        // 绑定端口
        acceptor.bind( new InetSocketAddress(PORT) );

    }

}

业务类:

public class TimeServerHandler extends IoHandlerAdapter{

    @Override
    public void exceptionCaught( IoSession session, Throwable cause ) throws Exception
    {
        //发生问题后触发
        cause.printStackTrace();
    }

   //获取消息后触发
    @Override
    public void messageReceived( IoSession session, Object message ) throws Exception
    {
        String str = message.toString();
        
        if( str.trim().equalsIgnoreCase("quit") ) {
            // "Quit" ? let's get out ...
            session.close(true);
            return;
        }

        // Send the current date back to the client
        Date date = new Date();
        session.write( date.toString() );
        System.out.println("Message written...");
    }

   //空闲时按设置的时间触发
    @Override
    public void sessionIdle( IoSession session, IdleStatus status ) throws Exception
    {
        System.out.println( "IDLE " + session.getIdleCount( status ));
    }

}


好了,一个时间服务器做好了,通过telnet localhost 9123连接后,输入任意信息,将返回时间信息。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值