package com.ilucky.mina.server;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.executor.ExecutorFilter;
import org.apache.mina.filter.executor.OrderedThreadPoolExecutor;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import java.net.InetSocketAddress;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
/**
* @author IluckySi
* @date 20140528
*/
public class MinaServer {
public static final String HOST = "127.0.0.1";
private static final int PORT = 10061;
private static final int BUFFER_SIZE = 8192;
private static final ThreadFactory THREAD_FACTORY = new ThreadFactory() {
public Thread newThread(final Runnable r) {
return new Thread(null, r, "MinaThread2", 64 * 1024);
}
};
public static void main(String[] args) {
try {
//创建服务.
NioSocketAcceptor acceptor = new NioSocketAcceptor(Runtime.getRuntime().availableProcessors() + 1);
//设置缓冲大小.
acceptor.getSessionConfig().setReceiveBufferSize(BUFFER_SIZE);
//添加线程池.
OrderedThreadPoolExecutor executor = new OrderedThreadPoolExecutor(0, 1000, 60, TimeUnit.SECONDS, THREAD_FACTORY);
acceptor.getFilterChain().addLast("threadPool", new ExecutorFilter(executor));
//添加消息过滤器.
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new XMLProtocolCodecFactory(4)));
//添加业务处理器.
acceptor.setHandler(new MinaServerIoHandler());
//绑定端口.
acceptor.bind(new InetSocketAddress(HOST, PORT));
System.out.println("mina server启动成功!");
} catch (Exception e) {
System.out.println("mina server启动失败!");
}
}
}
/**
输出结果:
mina server启动成功!
log4j:WARN No appenders could be found for logger (org.apache.mina.filter.executor.OrderedThreadPoolExecutor).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
服务器收到客户端返回的消息<?xml version="1.0" encoding="UTF-8"?>
<root><head><author>IluckySi</author><date>20140717 20:35:14</date></head></root>
*/
评论6
最新资源