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