@Override @SuppressForbidden(reason = "debug") protected void stopInternal() { Releasables.close(serverOpenChannels, () -> { final List<Tuple<String, Future<?>>> serverBootstrapCloseFutures = new ArrayList<>(serverBootstraps.size()); for (final Map.Entry<String, ServerBootstrap> entry : serverBootstraps.entrySet()) { serverBootstrapCloseFutures.add( Tuple.tuple(entry.getKey(), entry.getValue().config().group().shutdownGracefully(0, 5, TimeUnit.SECONDS))); } for (final Tuple<String, Future<?>> future : serverBootstrapCloseFutures) { future.v2().awaitUninterruptibly(); if (!future.v2().isSuccess()) { logger.debug( (Supplier<?>) () -> new ParameterizedMessage( "Error closing server bootstrap for profile [{}]", future.v1()), future.v2().cause()); } } serverBootstraps.clear(); if (bootstrap != null) { bootstrap.config().group().shutdownGracefully(0, 5, TimeUnit.SECONDS).awaitUninterruptibly(); bootstrap = null; } }); }
Server( AddressResolver addressResolver, EventLoopGroup eventLoopGroup, boolean customEventLoop, Timer timer, boolean customTimer, long bindTimeoutInNanos, StubStore stubStore, boolean activityLogging, ServerBootstrap serverBootstrap) { // custom constructor onyl made to help facilitate testing with a custom bootstrap. this.addressResolver = addressResolver; this.timer = timer; this.customTimer = customTimer; this.eventLoopGroup = eventLoopGroup; this.customEventLoop = customEventLoop; this.serverBootstrap = serverBootstrap; this.bindTimeoutInNanos = bindTimeoutInNanos; this.stubStore = stubStore; this.activityLogging = activityLogging; }
private Server( AddressResolver addressResolver, EventLoopGroup eventLoopGroup, Class<? extends ServerChannel> channelClass, boolean customEventLoop, Timer timer, boolean customTimer, long bindTimeoutInNanos, StubStore stubStore, boolean activityLogging) { this( addressResolver, eventLoopGroup, customEventLoop, timer, customTimer, bindTimeoutInNanos, stubStore, activityLogging, new ServerBootstrap() .group(eventLoopGroup) .channel(channelClass) .childHandler(new Initializer())); }
public void start(SlaveNode slaveNode) { if(slaveNode==null){ throw new IllegalArgumentException("slaveNode is null"); } EventLoopGroup bossGroup = new NioEventLoopGroup(CommonConstants.BOSS_GROUP_SIZE, new DefaultThreadFactory("boss", true)); EventLoopGroup workerGroup = new NioEventLoopGroup(CommonConstants.WORKER_GROUP_SIZE, new DefaultThreadFactory("worker", true)); try { ServerBootstrap b = new ServerBootstrap(); b.option(ChannelOption.SO_BACKLOG, 1024); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .handler(new LoggingHandler(LogLevel.INFO)) .childHandler(new SlaveServerInitializer()); ChannelFuture future = b.bind(slaveNode.getPort()).sync(); LOGGER.info("SlaveServer Startup at port:{}",slaveNode.getPort()); // 等待服务端Socket关闭 future.channel().closeFuture().sync(); } catch (InterruptedException e) { LOGGER.error("InterruptedException:",e); } finally { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); } }
public void start() { EventLoopGroup bossGroup = new NioEventLoopGroup(CommonConstants.BOSS_GROUP_SIZE, new DefaultThreadFactory("boss", true)); EventLoopGroup workerGroup = new NioEventLoopGroup(CommonConstants.WORKER_GROUP_SIZE, new DefaultThreadFactory("worker", true)); try { ServerBootstrap b = new ServerBootstrap(); b.option(ChannelOption.SO_BACKLOG, 1024); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .handler(new LoggingHandler(LogLevel.INFO)) .childHandler(new ServerInitializer()); ChannelFuture future = b.bind(CommonConstants.SERVER_PORT).sync(); logger.info("NettyServer Startup at port:{}",CommonConstants.SERVER_PORT); // 等待服务端Socket关闭 future.channel().closeFuture().sync(); } catch (InterruptedException e) { logger.error("InterruptedException:",e); } finally { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); } }
@Override public void bind(int port) { EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); ServerBootstrap bootstrap = new ServerBootstrap() .group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class).localAddress(new InetSocketAddress(8888)) .childHandler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new Encoder(serializer), new Decoder(serializer), new ProviderHandler()); } }); bootstrap.bind(port); }
@Override public void start() throws Exception { try { ServerBootstrap b = new ServerBootstrap() .group(bossGroup, workGroup) .channel(NioServerSocketChannel.class) .childHandler(serverInitializer); logger.info("Starting TcpChatServer... Port: " + port); channelFuture = b.bind(port).sync(); } finally { Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { shutdown(); } }); } }
@Override public void start() throws Exception { try { ServerBootstrap b = new ServerBootstrap() .group(bossGroup, workGroup) .channel(NioServerSocketChannel.class) .childHandler(serverInitializer); logger.info("Starting WebSocketChatServer... Port: " + port); channelFuture = b.bind(port).sync(); } finally { Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { shutdown(); } }); } }
public static void main(String[] args) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_REUSEADDR, true) .childHandler(new ChannelInitializer<NioSocketChannel>() { @Override protected void initChannel(NioSocketChannel ch) throws Exception { ch.pipeline().addLast(new SimpleServerHandler()); } }); b.bind(8090).sync().channel().closeFuture().sync(); }
protected AbstractNettyServer(String serverName) { this.serverName = Objects.requireNonNull(serverName, "server name"); bootstrap = new ServerBootstrap(); if (Epoll.isAvailable()) { bootstrap.option(ChannelOption.SO_BACKLOG, 1024).channel(EpollServerSocketChannel.class) .childOption(ChannelOption.SO_LINGER, 0).childOption(ChannelOption.SO_REUSEADDR, true) .childOption(ChannelOption.SO_KEEPALIVE, true); log.info(serverName + " epoll init"); } else { bootstrap.channel(NioServerSocketChannel.class); log.info(serverName + " nio init"); } bootstrap.group(bossGroup, workerGroup).option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT) .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT) .childOption(ChannelOption.TCP_NODELAY, true).childHandler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) throws Exception { initPipeline(ch.pipeline()); } }); }
public void doOpen() throws InterruptedException { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try{ ServerBootstrap serverBootstrap = new ServerBootstrap(); serverBootstrap.group(bossGroup,workerGroup); serverBootstrap.channel(NioServerSocketChannel.class); serverBootstrap.childHandler(new ChannelInitializer<SocketChannel>() { protected void initChannel(SocketChannel socketChannel) throws Exception { ChannelPipeline pipeline = socketChannel.pipeline(); pipeline.addLast(new ObjectDecoder(1024*1024, ClassResolvers.weakCachingConcurrentResolver(this.getClass().getClassLoader()))); pipeline.addLast(new ObjectEncoder()); pipeline.addLast((SimpleChannelInboundHandler)handler); } }); serverBootstrap.option(ChannelOption.SO_BACKLOG,1024); serverBootstrap.childOption(ChannelOption.SO_KEEPALIVE,true); ChannelFuture future = serverBootstrap.bind(address,port).sync(); //future.channel().closeFuture().sync(); }finally{ //workerGroup.shutdownGracefully(); //bossGroup.shutdownGracefully(); } }
/** * 启动服务 * * @throws Exception 异常 */ public void start() throws Exception { try { ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(channelInitializer) .option(ChannelOption.SO_BACKLOG, aceServerConfig.getBackSize()) .childOption(ChannelOption.SO_KEEPALIVE, true) .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT); ChannelFuture future = bootstrap.bind(aceServerConfig.getPort()).sync(); System.out.println("ace server starter on port : " + aceServerConfig.getPort()); future.channel().closeFuture().sync(); } finally { close(); } }
@Override public void start(Config config) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); int port = config.getPort(); try { ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 1024) .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 1000) .childHandler(new SocksServerInitializer(config)); log.info("Socks5 server bind port: {}", port); b.bind(port).sync().channel().closeFuture().sync(); } finally { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); } }
public Receiver ( final ReceiverHandlerFactory factory, final SocketAddress addr ) { this.factory = factory; this.bossGroup = new NioEventLoopGroup (); this.workerGroup = new NioEventLoopGroup (); this.bootstrap = new ServerBootstrap (); this.bootstrap.group ( this.bossGroup, this.workerGroup ); this.bootstrap.channel ( NioServerSocketChannel.class ); this.bootstrap.option ( ChannelOption.SO_BACKLOG, 5 ); this.bootstrap.option ( ChannelOption.SO_REUSEADDR, true ); this.bootstrap.childHandler ( new ChannelInitializer<SocketChannel> () { @Override protected void initChannel ( final SocketChannel ch ) throws Exception { handleInitChannel ( ch ); } } ); this.channel = this.bootstrap.bind ( addr ).channel (); logger.info ( "Receiver running ..." ); }
private ChannelFuture bindToSslSocket() throws InterruptedException, CertificateException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException, IOException { String hostname = configuration.getHostName(); int port = Integer.parseInt(configuration.getSsl().getPort()); ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new SslSocketChannelInitializer(ioExecutors, new SslHandlerFactory(configuration))) .option(ChannelOption.SO_BACKLOG, 128) .childOption(ChannelOption.SO_KEEPALIVE, true); // Bind and start to accept incoming connections. ChannelFuture future = b.bind(hostname, port).sync(); LOGGER.info("Listening AMQP/" + configuration.getSsl().getProtocol() + " on " + hostname + ":" + port); return future; }
public void run() { try { // Configure the server. EventLoopGroup group = new NioEventLoopGroup(); try { ServerBootstrap b = new ServerBootstrap(); b.option(ChannelOption.SO_BACKLOG, 1024); b.group(group) .channel(NioServerSocketChannel.class) .handler(new LoggingHandler(LogLevel.INFO)) .childHandler(new Http2ServerInitializer(mSslCtx)); sServerChannel = b.bind(PORT).sync().channel(); Log.i(TAG, "Netty HTTP/2 server started on " + getServerUrl()); sBlock.open(); sServerChannel.closeFuture().sync(); } finally { group.shutdownGracefully(); } Log.i(TAG, "Stopped Http2TestServerRunnable!"); } catch (Exception e) { Log.e(TAG, e.toString()); } }
public void start() { try { ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast(new HttpRequestDecoder()); pipeline.addLast(new HttpResponseEncoder()); pipeline.addLast(new SimpleServerHandler()); } }); ChannelFuture future = bootstrap.bind(port).sync(); logger.info("Check server started at port: {}", this.port); } catch (Exception e) { e.printStackTrace(); workerGroup.shutdownGracefully(); bossGroup.shutdownGracefully(); logger.error("Check server start exception", e); } }
@Override public void start() throws EmbeddedServletContainerException { ServerBootstrap b = new ServerBootstrap(); groups(b); servletExecutor = new DefaultEventExecutorGroup(50); b.childHandler(new NettyEmbeddedServletInitializer(servletExecutor, context)); // Don't yet need the complexity of lifecycle state, listeners etc, so tell the context it's initialised here context.setInitialised(true); ChannelFuture future = b.bind(address).awaitUninterruptibly(); //noinspection ThrowableResultOfMethodCallIgnored Throwable cause = future.cause(); if (null != cause) { throw new EmbeddedServletContainerException("Could not start Netty server", cause); } logger.info(context.getServerInfo() + " started on port: " + getPort()); }
private void bind() throws InterruptedException { EventLoopGroup boss = new NioEventLoopGroup(1); EventLoopGroup worker = new NioEventLoopGroup(); ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(boss, worker) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 128) .option(ChannelOption.TCP_NODELAY, true) .childOption(ChannelOption.SO_KEEPALIVE, true) .childHandler(new NettyServerInitializer()); ChannelFuture f = bootstrap.bind(port).sync(); if (f.isSuccess()) { logger.info("server start---------------"); } }
public void start(){ logger.debug( "--Socket Server will start------------" ) ; boss = new NioEventLoopGroup() ; work = new NioEventLoopGroup() ; int port = CommonConfig.getInteger( SOCKET_PORT1 ); try { logger.info( "Netty Server[" + port + "] started..." ) ; ServerBootstrap b = new ServerBootstrap() ; b.group( boss , work ) ; b.channel( NioServerSocketChannel.class ) ; b.childHandler( nettyInitializer ) ; b.bind( port ).sync().channel().closeFuture().sync() ; } catch ( Exception e ) { String err_string = e.toString(); if( err_string.indexOf( "childHandler" ) != -1 ){ logger.error( "Netty Server[" + port + "] NettyInitializer can't find." ) ; }else{ logger.error( "Netty Server[" + port + "] onload err:" + e.toString() , e ) ; } } finally { logger.error( "Netty Server[" + port + "] will be unload..." ) ; unload(); } }
public void start() { bossGroup = new NioEventLoopGroup(); workerGroup = new NioEventLoopGroup(); ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap .group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 1024) .childOption(ChannelOption.SO_KEEPALIVE, true) .childHandler(new PlayerInitializer(this)); try { channel = bootstrap.bind(server.getConfig().get("server.port").getAsShort()).sync().channel(); } catch (InterruptedException e) { e.printStackTrace(); } }
@PostConstruct public void init() throws Exception { log.info("Setting resource leak detector level to {}", leakDetectorLevel); ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.valueOf(leakDetectorLevel.toUpperCase())); log.info("Starting MQTT transport..."); log.info("Lookup MQTT transport adaptor {}", adaptorName); // this.adaptor = (MqttTransportAdaptor) appContext.getBean(adaptorName); log.info("Starting MQTT transport server"); bossGroup = new NioEventLoopGroup(bossGroupThreadCount); workerGroup = new NioEventLoopGroup(workerGroupThreadCount); ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup).option(ChannelOption.SO_BACKLOG, 1000).option(ChannelOption.TCP_NODELAY, true) .childOption(ChannelOption.SO_KEEPALIVE, true).channel(NioServerSocketChannel.class) .childHandler(new MqttTransportServerInitializer(msgProducer, deviceService, authService, assetService, assetAuthService, relationService, sslHandlerProvider)); serverChannel = b.bind(host, port).sync().channel(); log.info("Mqtt transport started: {}:{}!", host, port); }
@Override public synchronized void start() { bossGroup = new NioEventLoopGroup(); // (1) workerGroup = new NioEventLoopGroup(); try { b = new ServerBootstrap(); // (2) b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 100) .handler(new LoggingHandler(LogLevel.INFO)) .childHandler(new SocketServerChannelInitializer(heartTime,socketService,applicationContext)); // Bind and start to accept incoming connections. b.bind(port); logger.info("socket: "+port+" starting...."); // Wait until the server socket is closed. // In this example, this does not happen, but you can do that to gracefully } catch (Exception e) { e.printStackTrace(); } }
public void start() throws InterruptedException { EventLoopGroup acceptors = new NioEventLoopGroup(socksProperties.getAcceptors()); EventLoopGroup workers = new NioEventLoopGroup(); EventLoopGroup forwarders = new NioEventLoopGroup(); try { ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(acceptors, workers) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, socksProperties.getBacklog()) .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, socksProperties.getConnectTimeoutMillis()) .childHandler(new Socks5WorkerChannelInitializer(socksProperties, forwarders)); Address address = socksProperties.getListen(); ChannelFuture future = bootstrap.bind(address.getHost(), address.getPort()).sync(); future.channel().closeFuture().sync(); } finally { forwarders.shutdownGracefully(); workers.shutdownGracefully(); acceptors.shutdownGracefully(); } }
/** * Adds a channel that listens locally */ public SocketAddress addLocalEndpoint() { ChannelFuture channelfuture; synchronized (this.endpoints) { channelfuture = ((ServerBootstrap)((ServerBootstrap)(new ServerBootstrap()).channel(LocalServerChannel.class)).childHandler(new ChannelInitializer<Channel>() { protected void initChannel(Channel p_initChannel_1_) throws Exception { NetworkManager networkmanager = new NetworkManager(EnumPacketDirection.SERVERBOUND); networkmanager.setNetHandler(new NetHandlerHandshakeMemory(NetworkSystem.this.mcServer, networkmanager)); NetworkSystem.this.networkManagers.add(networkmanager); p_initChannel_1_.pipeline().addLast((String)"packet_handler", (ChannelHandler)networkmanager); } }).group((EventLoopGroup)eventLoops.getValue()).localAddress(LocalAddress.ANY)).bind().syncUninterruptibly(); this.endpoints.add(channelfuture); } return channelfuture.channel().localAddress(); }
@Override public void run(String... args) throws Exception { NioEventLoopGroup group = new NioEventLoopGroup(); ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(group) .channel(NioServerSocketChannel.class) .childHandler(serverChannelInitializer); ChannelFuture channelFuture = bootstrap.bind(new InetSocketAddress(30232)); channelFuture.addListener(future -> { if (future.isSuccess()) { logger.info("「Netty」服务器启动成功"); } else { logger.info("「Netty」服务器启动失败"); } }); }
public static void main(String[] args) throws Exception { // Configure the server. EventLoopGroup group = new NioEventLoopGroup(); try { ServerBootstrap b = new ServerBootstrap(); b.group(group) .channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new TcpRttDecoder()) .addLast(new TcpRttServerHandler()); } }).childOption(ChannelOption.TCP_NODELAY, true); // Start the server. ChannelFuture f = b.bind(PORT).sync(); // Wait until the server socket is closed. f.channel().closeFuture().sync(); } finally { // Shut down all event loops to terminate all threads. group.shutdownGracefully(); } }
@Override public void start() { this.bossGroup = NettyUtils.createEventLoopGroup(1); this.workerGroup = NettyUtils.createEventLoopGroup(4); Class<? extends ServerChannel> serverChannelClass = NettyUtils.getServerChannelClass(); this.logger.info("I am going to start a server on {}:{}.", this.config.getServerHost(), this.config.getServerPort()); ServerBootstrap serverBootstrap = new ServerBootstrap(); try { channel = serverBootstrap .group(bossGroup, workerGroup) .channel(serverChannelClass) .childHandler(new ServerChannelInitializer(this)) .childOption(ChannelOption.SO_KEEPALIVE, true) .bind(config.getServerHost(), config.getServerPort()) .sync().channel(); } catch (InterruptedException e) { e.printStackTrace(); } this.logger.info("Started the server on {}:{}.", this.config.getServerHost(), this.config.getServerPort()); }
public void start() { ServerBootstrap b = new ServerBootstrap(); b.group(workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_KEEPALIVE, true) .childHandler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel socketChannel) throws Exception { System.out.println("New client connected! (" + socketChannel.localAddress() + ")"); socketChannel.pipeline().addLast(new StringEncoder()).addLast(new StringEncoder()).addLast(new EchoServerHandler()); } }); f = b.bind(port); }
private void startServer() throws Exception { Runtime.getRuntime().addShutdownHook(new Thread(this::shutdown)); try { ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(masterGroup, slaveGroup) .channel(NioServerSocketChannel.class) .childHandler(new HttpServerInitializer(razor)) .option(ChannelOption.SO_BACKLOG, 128) .childOption(ChannelOption.SO_KEEPALIVE, true); this.channel = bootstrap.bind(env.get(ENV_KEY_SERVER_HOST, DEFAULT_SERVER_HOST), env.getInt(ENV_KEY_SERVER_PORT, DEFAULT_SERVER_PORT)).sync().channel(); log.info("{} started and listen on {}", HttpServerHandler.class.getName(), channel.localAddress()); } catch (final InterruptedException e){ log.error("Netty server startup failed, error: {}", e.getMessage()); } }
public void start(int port) throws Exception { EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new MqttDecoder()); ch.pipeline().addLast(MqttEncoder.INSTANCE); ch.pipeline().addLast(new MqttInBoundHandler()); } }) .option(ChannelOption.SO_BACKLOG, 1024) .childOption(ChannelOption.SO_KEEPALIVE, true); ChannelFuture future = bootstrap.bind(port).sync(); future.channel().closeFuture().sync(); } finally { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); } }
public Future startAsync() { bossGroup = new NioEventLoopGroup(1); workerGroup = new NioEventLoopGroup(); bootstrap = new ServerBootstrap(); bootstrap.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new SocksServerInitializer()) .childAttr(OPTION_ATTRIBUTE_KEY, option); return bootstrap.bind(option.getLocalHost(), option.getLocalPort()).addListener( new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (infoEnable) { if (future.isSuccess()) { logger.info("Listening on local port {}", option.getLocalPort()); } else { logger.info("Shadowsocks client startup failed", future.cause()); } } } }); }
public void start() { EventLoopGroup boss = new NioEventLoopGroup(1); EventLoopGroup worker = new NioEventLoopGroup(); try { ServerBootstrap bootstrap = new ServerBootstrap(); bootstrap.group(boss,worker) .channel(NioServerSocketChannel.class) .childHandler(new HttpChannelInitializer(list)); ChannelFuture future = bootstrap.bind(port).sync(); log.info("start listen in port {}", port); future.channel().closeFuture().sync(); } catch (Exception e ) { e.printStackTrace(); } finally { boss.shutdownGracefully(); worker.shutdownGracefully(); } }
/** *@description 监听指定端口 *@time 创建时间:2017年7月21日下午3:50:26 *@param port *@throws InterruptedException *@author dzn */ public void bind(int port) throws InterruptedException{ //分配任务线程池 EventLoopGroup bossGroup = new NioEventLoopGroup(); //执行任务线程池 EventLoopGroup workGroup = new NioEventLoopGroup(); try{ //netty Server端 ServerBootstrap server = new ServerBootstrap(); server.group(bossGroup, workGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 1024) .childHandler(new ChildChannelHandler()); //启动netty服务器 ChannelFuture cf = server.bind(port).sync(); System.out.println("服务器已启动, 监控端口号为 : " + port); //等待服务器端关闭 cf.channel().closeFuture().sync(); }finally{ bossGroup.shutdownGracefully(); workGroup.shutdownGracefully(); } }
public void start() throws Exception { UnknownPandaServer.getLogger().info("Loading protocol"); Protocol protocol = ProtocolSpecification.getProtocol(); protocol.load(); UnknownPandaServer.getLogger().info("Binding UniverseServer at *::" + port + " [tcp]"); this.channel = new ServerBootstrap() .group(Epoll.isAvailable() ? new EpollEventLoopGroup() : new NioEventLoopGroup()) .channel(Epoll.isAvailable() ? EpollServerSocketChannel.class : NioServerSocketChannel.class) //.childOption(ChannelOption.TCP_NODELAY, true) .childHandler(new ConnectionInitializer(this)) .localAddress("", port) .bind() .addListeners(this) .sync() .channel(); }
@Override public void start() { this.bossGroup = NettyUtils.createEventLoopGroup(1); this.workerGroup = NettyUtils.createEventLoopGroup(4); Class<? extends ServerChannel> serverChannelClazz = NettyUtils.getServerChannelClass(); ChannelHandler channelInitializer = new SansaServerChannelInitializer(userManager); ServerBootstrap serverBootstrap = new ServerBootstrap(); this.logger.info("Starting a sansa server."); try { channel = serverBootstrap .group(this.bossGroup, this.workerGroup) .channel(serverChannelClazz) .childHandler(channelInitializer) .option(ChannelOption.TCP_NODELAY, true) .bind(1100).sync().channel(); } catch (InterruptedException e) { e.printStackTrace(); } this.logger.info("Sansa is now rocking the shit."); }
/** * 启动netty服务 */ @Override public void start() { SocketManager.getInstance().setMaxConnection(nettyConfig.getMaxConnection()); servletExecutor = new DefaultEventExecutorGroup(MAX_THREADS); if (nettyConfig.getMaxThreads() != 0) { MAX_THREADS = nettyConfig.getMaxThreads(); } try { final SerializeProtocolEnum serializeProtocolEnum = SerializeProtocolEnum.acquireSerializeProtocol(nettyConfig.getSerialize()); nettyServerHandlerInitializer.setSerializeProtocolEnum(serializeProtocolEnum); nettyServerHandlerInitializer.setServletExecutor(servletExecutor); ServerBootstrap b = new ServerBootstrap(); groups(b, MAX_THREADS << 1); /* bossGroup = new NioEventLoopGroup(); workerGroup = new NioEventLoopGroup(MAX_THREADS * 2); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .option(ChannelOption.SO_BACKLOG, 100) .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 1000) .option(ChannelOption.SO_KEEPALIVE, true) .option(ChannelOption.TCP_NODELAY, true) .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT) .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT) .childHandler(nettyServerHandlerInitializer);*/ b.bind(nettyConfig.getPort()); LOGGER.info("netty service started on port: " + nettyConfig.getPort()); } catch (Exception e) { e.printStackTrace(); } }
public void start() { Configuration conf = context.getConf(); int workerNum = conf.getInt(AngelConf.ANGEL_NETTY_MATRIXTRANSFER_SERVER_EVENTGROUP_THREADNUM, AngelConf.DEFAULT_ANGEL_NETTY_MATRIXTRANSFER_SERVER_EVENTGROUP_THREADNUM); int sendBuffSize = conf.getInt(AngelConf.ANGEL_NETTY_MATRIXTRANSFER_SERVER_SNDBUF, AngelConf.DEFAULT_ANGEL_NETTY_MATRIXTRANSFER_SERVER_SNDBUF); int recvBuffSize = conf.getInt(AngelConf.ANGEL_NETTY_MATRIXTRANSFER_SERVER_RCVBUF, AngelConf.DEFAULT_ANGEL_NETTY_MATRIXTRANSFER_SERVER_RCVBUF); final int maxMessageSize = conf.getInt(AngelConf.ANGEL_NETTY_MATRIXTRANSFER_MAX_MESSAGE_SIZE, AngelConf.DEFAULT_ANGEL_NETTY_MATRIXTRANSFER_MAX_MESSAGE_SIZE); bossGroup = new NioEventLoopGroup(1); workerGroup = new NioEventLoopGroup(workerNum); ((NioEventLoopGroup) workerGroup).setIoRatio(70); ServerBootstrap b = new ServerBootstrap(); b.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class) .option(ChannelOption.SO_SNDBUF, sendBuffSize) .option(ChannelOption.SO_RCVBUF, recvBuffSize) .childHandler(new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new LengthFieldBasedFrameDecoder(maxMessageSize, 0, 4, 0, 4)); p.addLast(new LengthFieldPrepender(4)); p.addLast(new MatrixTransportServerHandler(context)); } }); channelFuture = b.bind(port); }