package com.deepnighttwo.nettylearn.test;
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.ChannelFactory;
import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.channel.Channels;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
import com.deepnighttwo.nettylearn.test.handler.DynLenTextDecoder;
import com.deepnighttwo.nettylearn.test.handler.String2NumEncoder;
import com.deepnighttwo.nettylearn.test.handler.StringMessageHandler;
public class DynLenTextServerDemoMain {
public static void main(String[] args) {
ChannelFactory channelFact = new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(), Executors.newCachedThreadPool());
ServerBootstrap bootstrap = new ServerBootstrap(channelFact);
bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
public ChannelPipeline getPipeline() throws Exception {
return Channels.pipeline(new DynLenTextDecoder(), String2NumEncoder.INSTANCE,
StringMessageHandler.INSTANCE);
}
// DummyChannelUpAndDownstreamHandler.INSTANCE
});
bootstrap.setOption("child.tcpNoDelay", "true");
bootstrap.setOption("child.keepAlive", "true");
bootstrap.bind(new InetSocketAddress(6363));
}
}