### Question:
NettyServer extends NettyRemotingAbstract { public NettyServer() { nettyServerConfig = new NettyServerConfig(); this.serverBootstrap = new ServerBootstrap(); if (useEpoll()) { logger.info("----->use epollEventLoopGroup"); this.eventLoopGroupBoss = new EpollEventLoopGroup(1, new NamedThreadFactory("EpollNettyServerBoss_", false)); this.eventLoopGroupWorker = new EpollEventLoopGroup(nettyServerConfig.getServerWorkerThreads(), new NamedThreadFactory("NettyEpollServerWorker_", false)); } else { this.eventLoopGroupBoss = new NioEventLoopGroup(1, new NamedThreadFactory("NettyServerBoss_", false)); this.eventLoopGroupWorker = new NioEventLoopGroup(nettyServerConfig.getServerWorkerThreads(), new NamedThreadFactory("NettyServerWorker_", false)); } } NettyServer(); void start(); void await(); void setGetBeanFunc(Function<Class, Object> getBeanFunc); Function<Class, Object> getGetBeanFunc(); String getAddr(); int getPort();  }### Answer:
@Test public void testNettyServer() throws InterruptedException { NettyServer server = new NettyServer(); server.start(); ZkServiceRegister reg = new ZkServiceRegister("/youpin/services/", server.getAddr() + ":" + server.getPort(), "", null); reg.register(); reg.start(); TimeUnit.HOURS.sleep(1); }