From 939292b1cfd4fb4f714bb5ae09dbc2220cef06b4 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Sat, 27 Feb 2021 19:10:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/server/UdpServer.java |   92 ++++++++++++++++++++++++---------------------
 1 files changed, 49 insertions(+), 43 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/server/UdpServer.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/server/UdpServer.java
index 957b186..fd48a78 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/server/UdpServer.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyUdpServer/server/UdpServer.java
@@ -17,7 +17,7 @@
 import java.util.concurrent.Executors;
 
 /**
- * Created by wangshikai on 2016/7/18.
+ * updServer udp服务端
  */
 public class UdpServer {
 	private static Logger LOG = LoggerFactory.getLogger(UdpServer.class);
@@ -73,51 +73,57 @@
 	//使用ChannelPipeline实现自定义IO
 	//Channel channel;
 	public void run() {
-		//InetSocketAddress socketAddress = new InetSocketAddress("s16s652780.51mypc.cn", 21403);
-		//启动服务
-		EventLoopGroup workerGroup = new NioEventLoopGroup();
-		//优化使用的线程
-		final EventExecutorGroup group = new DefaultEventExecutorGroup(16);
+		Thread thread = new Thread(new Runnable() {
+			@Override
+			public void run() {
+				//InetSocketAddress socketAddress = new InetSocketAddress("s16s652780.51mypc.cn", 21403);
+				//启动服务
+				EventLoopGroup workerGroup = new NioEventLoopGroup();
+				//优化使用的线程
+				final EventExecutorGroup group = new DefaultEventExecutorGroup(16);
 
-		try {
-			Bootstrap b = new Bootstrap();//udp不能使用ServerBootstrap
-			b.group(workerGroup).channel(NioDatagramChannel.class)//设置UDP通道
-				//设置udp的管道工厂
-				.handler(new ChannelInitializer<NioDatagramChannel>() {
-					//NioDatagramChannel标志着是UDP格式的
-					@Override
-					protected void initChannel(NioDatagramChannel ch)
-						throws Exception {
-						// TODO Auto-generated method stub
-						//创建一个执行Handler的容器
-						ChannelPipeline pipeline = ch.pipeline();
-						pipeline.addLast(new StringDecoder());
-						pipeline.addLast(new StringEncoder());
-						//执行具体的处理器
-						pipeline.addLast(group, "handler", new UdpServerHandler());//消息处理器
-					}
+				try {
+					Bootstrap b = new Bootstrap();//udp不能使用ServerBootstrap
+					b.group(workerGroup).channel(NioDatagramChannel.class)//设置UDP通道
+						//设置udp的管道工厂
+						.handler(new ChannelInitializer<NioDatagramChannel>() {
+							//NioDatagramChannel标志着是UDP格式的
+							@Override
+							protected void initChannel(NioDatagramChannel ch)
+								throws Exception {
+								// TODO Auto-generated method stub
+								//创建一个执行Handler的容器
+								ChannelPipeline pipeline = ch.pipeline();
+								pipeline.addLast(new StringDecoder());
+								pipeline.addLast(new StringEncoder());
+								//执行具体的处理器
+								pipeline.addLast(group, "handler", new UdpServerHandler());//消息处理器
+							}
 
-				})//初始化处理器
-				//true / false 多播模式(UDP适用),可以向多个主机发送消息
-				.option(ChannelOption.SO_BROADCAST, true)// 支持广播
-				.option(ChannelOption.SO_RCVBUF, 2048 * 1024)// 设置UDP读缓冲区为2M
-				.option(ChannelOption.SO_SNDBUF, 1024 * 1024);// 设置UDP写缓冲区为1M
+						})//初始化处理器
+						//true / false 多播模式(UDP适用),可以向多个主机发送消息
+						.option(ChannelOption.SO_BROADCAST, true)// 支持广播
+						.option(ChannelOption.SO_RCVBUF, 2048 * 1024)// 设置UDP读缓冲区为2M
+						.option(ChannelOption.SO_SNDBUF, 1024 * 1024);// 设置UDP写缓冲区为1M
 
-			// 绑定端口,开始接收进来的连接
-			ChannelFuture f = b.bind(port).sync();
-			//获取channel通道
-			//channel=f.channel();
-			System.out.println("UDP Server 启动!");
-			// 等待服务器 socket 关闭 。
-			// 这不会发生,可以优雅地关闭服务器。
-			f.channel().closeFuture().sync();
-		} catch (InterruptedException e) {
-			e.printStackTrace();
-		} finally {
-			// 优雅退出 释放线程池资源
-			group.shutdownGracefully();
-			workerGroup.shutdownGracefully();
-		}
+					// 绑定端口,开始接收进来的连接
+					ChannelFuture f = b.bind(port).sync();
+					//获取channel通道
+					//channel=f.channel();
+					System.out.println("UDP Server 启动,端口:"+port);
+					// 等待服务器 socket 关闭 。
+					// 这不会发生,可以优雅地关闭服务器。
+					f.channel().closeFuture().sync();
+				} catch (InterruptedException e) {
+					e.printStackTrace();
+				} finally {
+					// 优雅退出 释放线程池资源
+					group.shutdownGracefully();
+					workerGroup.shutdownGracefully();
+				}
+			}
+			});
+		thread.start();
 	}
 
 }

--
Gitblit v1.9.3