当前位置: 首页 > news >正文

苏州做公司邮箱企业网站网站开发培训课程表

苏州做公司邮箱企业网站,网站开发培训课程表,H5网站建设网站定制开发,福州网站建设新闻文章目录 简述Netty-UDP集成pom引入ClientHandler调用 消息发送与接收在线UDP服务系统调用 简述 最近在一些场景中需要使用UDP客户端进行#xff0c;所以开始集成新的东西。本文集成了一个基于netty的SpringBoot的简单的应用场景。 Netty-UDP集成 pom引入 !-- netty --… 文章目录 简述Netty-UDP集成pom引入ClientHandler调用 消息发送与接收在线UDP服务系统调用 简述 最近在一些场景中需要使用UDP客户端进行所以开始集成新的东西。本文集成了一个基于netty的SpringBoot的简单的应用场景。 Netty-UDP集成 pom引入 !-- netty --dependencygroupIdio.netty/groupIdartifactIdnetty-all/artifactIdversion4.1.84.Final/version/dependency 如果项目本身使用redis,则redis默认会集成,我的项目中默认有netty-4.1.84.Final dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependencyClient import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelOption; import io.netty.channel.ChannelPipeline; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioDatagramChannel; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.stereotype.Component;/*** author fir*/ Slf4j Component public class LogPushUdpClient implements ApplicationRunner {private final Bootstrap bootstrap;public final NioEventLoopGroup workerGroup;public static Channel channel;Overridepublic void run(ApplicationArguments args) {start();}public void start() {try {log.info(UDP客户端--启动);channel bootstrap.bind(1234).sync().channel();channel.closeFuture().await(1000);} catch (InterruptedException e) {log.info(UDP客户端启动失败);}}private LogPushUdpClient() {bootstrap new Bootstrap();workerGroup new NioEventLoopGroup();bootstrap.group(workerGroup).channel(NioDatagramChannel.class).option(ChannelOption.SO_BROADCAST, true).handler(new ChannelInitializerNioDatagramChannel() {Overrideprotected void initChannel(NioDatagramChannel ch) {// 获取了通道的管道管道是一个处理网络事件和操作的处理器链。ChannelPipeline pipeline ch.pipeline();// 向管道添加了自定义的 LogPushUdpClientHandler 处理器它将处理网络 I/O 事件和数据pipeline.addLast(new LogPushUdpClientHandler());}});}}Handler package com.fir.home.handler.udp;import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.*; import io.netty.channel.socket.DatagramPacket; import io.netty.util.concurrent.GenericFutureListener; import java.net.InetSocketAddress; import java.nio.charset.StandardCharsets; import java.util.HashMap;import lombok.extern.slf4j.Slf4j;/*** author fir*/ Slf4j public class LogPushUdpClientHandler extends SimpleChannelInboundHandlerDatagramPacket {public static HashMapLong, Boolean treedMap new HashMap();/*** 客户端初次连接时执行的方法** param ctx 通道处理上下文*/Overridepublic void channelActive(ChannelHandlerContext ctx) {log.info(客户端通道已就绪!);}Overrideprotected void channelRead0(ChannelHandlerContext ctx, DatagramPacket packet) {final ByteBuf buf packet.content();int readableBytes buf.readableBytes();byte[] content new byte[readableBytes];buf.readBytes(content);String serverMessage new String(content);log.info([UDP客户端]接受消息: serverMessage);}/*** 向服务器发送消息** param msg 按规则拼接的消息串* param inetSocketAddress 目标服务器地址*/public static void sendMessage(final String msg, final InetSocketAddress inetSocketAddress) {log.info([UDP客户端]发送消息消息: msg);if (msg null) {throw new NullPointerException([UDP客户端]发送数据为空);}DatagramPacket datagramPacket datagramPacket(msg, inetSocketAddress);senderInternal(datagramPacket);}/*** 组装数据包** param msg 消息串* param inetSocketAddress 服务器地址* return DatagramPacket*/public static DatagramPacket datagramPacket(String msg, InetSocketAddress inetSocketAddress) {DatagramPacket datagramPacket;ByteBuf dataBuf Unpooled.copiedBuffer(msg, StandardCharsets.UTF_8);datagramPacket new DatagramPacket(dataBuf, inetSocketAddress);return datagramPacket;}/*** 发送数据包服务器无返回结果** param datagramPacket 数据报文包*/private static void senderInternal(final DatagramPacket datagramPacket) {if (LogPushUdpClient.channel ! null) {LogPushUdpClient.channel.writeAndFlush(datagramPacket).addListener((GenericFutureListenerChannelFuture) future - {boolean success future.isSuccess();if (log.isInfoEnabled()) {log.info([UDP客户端]发送结果 : success);}});} else {throw new NullPointerException(UPD上下文通道为空);}} }调用 InetSocketAddress inetSocketAddress new InetSocketAddress(127.0.0.1, 50000);LogPushUdpClientHandler.sendMessage(hello, inetSocketAddress);消息发送与接收 在线UDP服务 服务端可以使用在线UDP服务 http://udp.xnkiot.com/ 系统调用 调用后可以看到数据发送成功并且接受成功。
http://www.hkea.cn/news/14525018/

相关文章:

  • 深圳市建设工程交易服务网站wordpress哪个模板好用吗
  • 重启wordpress怎么 给自己的网站做优化呢
  • 温州网站排名优化公司口碑好的专业网站建设
  • 怎么自己做网站链接苏州 网站的公司
  • 大型集团网站建设铜铜铜铜铜铜铜铜好大好深色
  • 网站目录扫描辽宁建设工程
  • 手机网站制作视频教程网站制作模板图片
  • 哪些行业没有做网站如何建立自己的小程序
  • 网站制作一个人可以做吗wordpress整站主题
  • 网站类网站开发源代码网络营销策划书1500字
  • 自己的卡盟网站怎么做分站房产怎么创建网站
  • xuzhou网站制作怎么做免费网站如何让百度收录
  • 平安建设宣传音频免费下载网站临沂沂河新区
  • 请简述网站制作流程南漳网站制作
  • 制作网站单页图片怎么制作
  • 郴州网站建设找哪家公司织梦网站优化
  • 学工系统网站建设的意义运城seo
  • 网站建设阶段的推广哪里能找到免费网站
  • 做外贸网站推广什么比较好揭阳企业网站排名多少钱
  • 六安网站线上引流多少钱游戏动漫设计与制作
  • 简述网站开发工作流程wordpress对接易支付宝
  • 七台河做网站济南外贸网站建站
  • icp备案网站接入信息企业网站优化定制
  • 营销型平台网站建设iis建好的网站套用模板
  • 网站后台登录域名页面具有动态效果网站建设
  • 网站文案框架建行官网个人登录
  • 网站内容建设的原则是什么样的用html5做课程教学网站
  • 有限公司在线网站做网站什么主题好
  • 门户网站建设服务收费小程序商城开发商
  • 长沙专业做网站的公司wordpress 暴力登陆