首页>代码>基于netty开发的在线聊天程序netty-chat>/netty-demo-m/src/main/java/com/example/netty/udpserver/UdpNettyServer.java
package com.example.netty.udpserver; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioDatagramChannel; import lombok.Data; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Data public class UdpNettyServer implements Runnable{ private final Logger logger = LoggerFactory.getLogger(UdpNettyServer.class); private int port; private String host; private ChannelHandler childChannelHandler; private ChannelFuture serverChannelFuture; private EventLoopGroup group; private final int timeout = 5; public UdpNettyServer() { } @Override public void run() { build(); } /** * 描述:启动Netty Websocket服务器 */ public void build() { EventLoopGroup bossLoopGroup = new NioEventLoopGroup(); try { long begin = System.currentTimeMillis(); //1、创建netty bootstrap 启动类 Bootstrap serverBootstrap = new Bootstrap(); //2、设置boostrap 的eventLoopGroup线程组 serverBootstrap = serverBootstrap.group(bossLoopGroup); //3、设置NIO UDP连接通道 serverBootstrap = serverBootstrap.channel(NioDatagramChannel.class); //4、设置通道参数 SO_BROADCAST广播形式 serverBootstrap = serverBootstrap.option(ChannelOption.SO_BROADCAST, true); //5、设置处理类 装配流水线 serverBootstrap = serverBootstrap.handler(childChannelHandler); //6、绑定server,通过调用sync()方法异步阻塞,直到绑定成功 serverChannelFuture = serverBootstrap.bind(port).sync(); long end = System.currentTimeMillis(); logger.info("Netty Udp服务器启动完成,耗时 " + (end - begin) +" ms,已绑定端口 " + port+"监听" + serverChannelFuture.channel().localAddress()); //7、监听通道关闭事件,应用程序会一直等待,直到channel关闭 serverChannelFuture.channel().closeFuture().sync(); } catch (Exception e) { } finally { logger.info("netty udpServer close!"); //8 关闭EventLoopGroup, bossLoopGroup.shutdownGracefully(); } } }

人间蒸发 LV23
3月12日
charleswang LV7
2024年6月11日
ntboss2002 LV3
2024年5月8日
wanglinddad LV55
2024年4月12日
shuangfu LV25
2023年10月19日
qq1061521319 LV4
2023年9月1日
cto1206 LV3
2023年8月29日
youzitao LV11
2023年4月17日
荣》Cowboy LV12
2023年4月12日
dixiu000 LV4
2023年2月28日

kkkllll LV2
1月9日
微信网友_7298640909209600 LV2
2024年12月22日
chuxue11 LV2
2024年11月18日
yunsgui LV1
2024年6月26日
TY0165 LV20
2024年6月17日
charleswang LV7
2024年6月11日
xiaozhi丶 LV15
2024年6月3日
develop LV10
2024年6月2日
ntboss2002 LV3
2024年5月3日
wanglinddad LV55
2024年4月12日