洪城义警-正式版后台
zhongrj
2023-06-27 2ca9993b57bdd090c4345ea6767687e2fbb83014
src/main/java/org/springblade/modules/nettyUdpServer/server/UdpServer.java
@@ -31,43 +31,6 @@
      run();
   }
   /**
    * 不用
    */
   public void init() {
      final NioEventLoopGroup group = new NioEventLoopGroup();
      try {
         Bootstrap b = new Bootstrap();
         b.group(group).channel(NioDatagramChannel.class)
            .option(ChannelOption.SO_BROADCAST, true)
            .handler(new ChannelInitializer<NioDatagramChannel>() {
               @Override
               public void initChannel(NioDatagramChannel ch) throws Exception {
                  ChannelPipeline p = ch.pipeline();
                  p.addLast("decoder", new JsonObjectDecoder());
                  p.addLast(new UdpServerHandler());
               }
            });
         InetAddress address = InetAddress.getLocalHost();
         channel = b.bind(address, port).sync().channel();
         Executors.newSingleThreadExecutor().execute(new Runnable() {
            @Override
            public void run() {
               try {
                  channel.closeFuture().sync();
               } catch (InterruptedException e) {
                  e.printStackTrace();
               } finally {
                  group.shutdownGracefully();
               }
            }
         });
         LOG.info("UDP服务器启动, host:{},port:{}", address.getHostAddress(), port);
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   //给管道抽象出接口,给Channel更多的能力和配置,例如Channel的状态,参数,IO操作
   //使用ChannelPipeline实现自定义IO