📄 hambserver.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 + -