hambserver.java
来自「详细说明怎么使用mina开发应用程序-mina develop examples」· Java 代码 · 共 57 行
JAVA
57 行
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 + =
减小字号Ctrl + -
显示快捷键?