Mina框架实现最简单的服务端(一)

创建和启动服务端

package minabase.server;

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.transport.socket.nio.NioSocketAcceptor;

/**
 * Class Description: 用mina框架启动服务端
 * Copyright:   Copyright (c)
 *
 */
public class server
{
    private static IoAcceptor acceptor = null;
    
    /**
     * @param args
     */
    public static void main(String[] args)
    {
        int port = 8100;
        
        try
        {
            String codecName = "US-ASCII";
            
            //创建一个非阻塞的 server 端的 Socket
            acceptor = new NioSocketAcceptor();
            
            //设置读取数据的缓冲区大小
            acceptor.getSessionConfig().setReadBufferSize(2048);
            
            //读写通道10秒内无操作进入空闲状态
            acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 120000);
            
            //acceptor.getFilterChain().addLast("logger", new MyLoggingFilter());
            
            acceptor.getFilterChain().addLast("codec",
                new ProtocolCodecFilter(new MyCodecFactory(new MyCodecDecoder(
                    Charset.forName(codecName)), new MyCodecEncoder(Charset.forName(codecName)))));
            
            //acceptor.getFilterChain().addLast("session", new SessionFilter());
            
            // 绑定逻辑处理器
            acceptor.setHandler(new BusinessHandler());
            
            //绑定端口
            acceptor.bind(new InetSocketAddress(port));
            
            System.out.println("Server starts successfully ... port: " + port);
        }
        catch (Exception e)
        {
            System.out.println("Server starts unsuccessfully with the xception: " + e);
            if (!acceptor.isDisposed())
            {
                acceptor.dispose();
            }
        }
    }
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值