public override void Start() { _channels = new DefaultChannelGroup(); // Listen for incoming connections _nioChannelFactory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool(daemon("Cluster boss", _monitor)), Executors.newFixedThreadPool(2, daemon("Cluster worker", _monitor)), 2); _serverBootstrap = new ServerBootstrap(_nioChannelFactory); _serverBootstrap.setOption("child.tcpNoDelay", true); _serverBootstrap.PipelineFactory = new NetworkNodePipelineFactory(this); int[] ports = _config.clusterServer().Ports; int minPort = ports[0]; int maxPort = ports.Length == 2 ? ports[1] : minPort; // Try all ports in the given range _port = Listen(minPort, maxPort); _msgLog.debug("Started NetworkReceiver at " + _config.clusterServer().Host + ":" + _port); }