Mina搭建数据收发服务器简单实例server+client+dbcp连接池

最近要用java做个数据处理接口程序。用socket通讯,所以想到了用mina来做服务器端。不多说直接上代码。

首先导入所需jar包

初始化mina服务类

import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.net.InetSocketAddress;

public class MainServer  extends Thread{

    private final static Logger logger = LoggerFactory.getLogger(MainServer.class);
    //the mina info
    public boolean isAlive = true;
    public MainHandler handler;
    public NioSocketAcceptor socketAcceptor;
    public final int port = 8005;

    public MainServer(){
        super("MainServer");
        socketAcceptor = new NioSocketAcceptor();
        socketAcceptor.setReuseAddress(true);
        socketAcceptor.getSessionConfig().setKeepAlive(true);
        handler = new MainHandler();
        socketAcceptor.setHandler(handler);
        //设置过滤器
        DefaultIoFilterChainBuilder chain = socketAcceptor.getFilterChain();
        chain.addLast("codec", new ProtocolCodecFilter(new BufferCoderFactory()));//明码字符串
    }

    public void run(){
        while(isAlive){
            try {
                sleep(3000);
            } catch (Exception e) {
                // TODO: handle exception
            }
        }
        System.exit(0);
    }

    public void startAcceptor(){
        try {
            socketAcceptor.bind(new InetSocketAddress(port));
            this.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        //start mina and database
        MainServer main = new MainServer();
        main.startAcceptor();
        logger.info("server started finished !!!");
    }

}

编解码工厂类

import org.apache.mina.core.session.IoSessi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值