⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hambserver.java

📁 详细说明怎么使用mina开发应用程序-mina develop examples detailing how to use the development and application of pro
💻 JAVA
字号:
package com.liantuo.hamburger;

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.log4j.Logger;
import org.apache.mina.common.IoAcceptor;
import org.apache.mina.common.ThreadModel;
import org.apache.mina.filter.LoggingFilter;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.transport.socket.nio.SocketAcceptor;
import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;
import org.apache.mina.transport.socket.nio.SocketSessionConfig;

import com.liantuo.hamburger.codec.HambProtocolCodecFactory;
import com.liantuo.hamburger.handler.cli.HambClientMessageHandler;
import com.liantuo.util.SystemProperties;

import edu.emory.mathcs.backport.java.util.concurrent.Executors;
import edu.emory.mathcs.backport.java.util.concurrent.LinkedBlockingQueue;
import edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor;
import edu.emory.mathcs.backport.java.util.concurrent.TimeUnit;

public class HambServer {
    private static final Logger logger = Logger.getLogger(HambServer.class);

    /** addr:port of pid-srv(res server) */
    public static final InetSocketAddress SESSION_SERVER_ADDRESS = new InetSocketAddress(SystemProperties.getInstance()
            .getResServerHost(), SystemProperties.getInstance().getResServerPort());

    /** addr:port of hamb-srv */

    public static final InetSocketAddress HAMB_LISTEN_ADDRESS = new InetSocketAddress(SystemProperties.getInstance()
            .getHamberServerHost(), SystemProperties.getInstance().getHamberServerPort());

    public static void main(String[] args) {
        IoAcceptor acceptor = new SocketAcceptor(4, Executors.newCachedThreadPool());
        SocketAcceptorConfig cfg = new SocketAcceptorConfig();
        cfg.setThreadModel(ThreadModel.MANUAL);
        cfg.setReuseAddress(true);
        ((SocketSessionConfig) cfg.getSessionConfig()).setTcpNoDelay(true);
        cfg.getFilterChain().addLast("hamb-codec", new ProtocolCodecFilter(new HambProtocolCodecFactory()));
        cfg.getFilterChain().addLast("thread-pool-client", new ExecutorFilter(Executors.newCachedThreadPool()));
        cfg.getFilterChain().addLast("client-logger", new LoggingFilter());
        try {
            acceptor.bind(HAMB_LISTEN_ADDRESS, new HambClientMessageHandler(), cfg);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("hamb-srv start ok ");
        logger.info("hamb-srv start;listen AT:" + HAMB_LISTEN_ADDRESS + ",TO:" + SESSION_SERVER_ADDRESS);

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -