这里需要netty的jar包文件,我已经上传到百度云,提供下载:

这里使用的是netty5

http://pan.baidu.com/s/1hr2VBzY

服务端:

package com.use.socket.udp.Server;

import io.netty.bootstrap.Bootstrap;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioDatagramChannel;

public class UdpServer {
// 相比于TCP而言,UDP不存在客户端和服务端的实际链接,因此
    // 不需要为连接(ChannelPipeline)设置handler
    public void run(int port)throws Exception{
        EventLoopGroup group = new NioEventLoopGroup();
        try {
            Bootstrap b = new Bootstrap();
            b.group(group).channel(NioDatagramChannel.class)
                    .option(ChannelOption.SO_BROADCAST,true)
                    .handler(new UdpServerHandler());

b.bind(port).sync().channel().closeFuture().await();
            System.out.println("启动成功");
        }
        finally {
            group.shutdownGracefully();
        }
    }

public static void main(String[] args) throws Exception{
        int port = 8080;
        if(args.length>0){
            try{
                port = Integer.parseInt(args[0]);
            }
            catch (NumberFormatException e){
                e.printStackTrace();
            }
        }
        new UdpServer().run(port);
    }

}

package com.use.socket.udp.Server;

import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.channel.socket.DatagramPacket;
import io.netty.util.CharsetUtil;
import io.netty.util.internal.ThreadLocalRandom;

public class UdpServerHandler extends SimpleChannelInboundHandler<DatagramPacket>{
private static final  String[] DICTIONARY={
            "hello world",
            "C++",
            "C#",
            "Java",
            "python"
    };

private String nextQuoto(){
        // 线程安全的随机类:ThreadLocalRandom
        int quoteId = ThreadLocalRandom.current().nextInt(DICTIONARY.length);
        return DICTIONARY[quoteId];
    }

@Override
    public void messageReceived(ChannelHandlerContext channelHandlerContext,
                                   DatagramPacket datagramPacket) throws Exception {
        // 因为Netty对UDP进行了封装,所以接收到的是DatagramPacket对象。
        String req = datagramPacket.content().toString(CharsetUtil.UTF_8);
        System.out.println("udp service收到"+req);

/* if("aaa".equals(req)){
            channelHandlerContext.writeAndFlush(new DatagramPacket(Unpooled.copiedBuffer(
                    "resourlt:"+nextQuoto(),CharsetUtil.UTF_8),datagramPacket.sender()));
        }else{
        channelHandlerContext.writeAndFlush(new DatagramPacket(Unpooled.copiedBuffer(
                     "resourlt:"+nextQuoto(),CharsetUtil.UTF_8),datagramPacket.sender()));
        }*/
    }

@Override
    public void exceptionCaught(ChannelHandlerContext ctx,Throwable cause)throws Exception{
        ctx.close();
        cause.printStackTrace();
}
}

可以使用工具测试:

查看eclipse中udp服务端数据:

可以接收到,自此,netty的udp服务端执行完毕

Netty创建upd服务端相关推荐

  1. Netty即是服务端又是客户端,服务端和客户端相互对应

    Netty即是服务端又是客户端,服务端和客户端相互对应. 具体功能细节是: 上游有一个服务,会主动发送消息给我中间件平台.中间件平台既有服务端也有客户端.通过下游客户端连接进来的客户端和中间件传下去的 ...

  2. Netty搭建Http2服务端并支持TLS传输加密

    Netty搭建Http2服务端并支持TLS传输加密 @Slf4j public class SslUtil {public static SslContext sslContext() {SslPro ...

  3. 关于SpringBoot整合Netty客户端和服务端实现JT808协议

    关于SpringBoot整合Netty客户端和服务端实现JT808协议 最近做了一个使用netty实现交通部JT808协议的项目,对比了mina和netty两种框架的使用,先整理一下netty的实现过 ...

  4. 六步创建TCP服务端

    //六步创建TCP服务端 #include<iostream> #include<Windows.h> using namespace std;int main() {//初始 ...

  5. linux netty udp服务端,Netty实现UDP服务端

    ### 前言 在之前的文章我已经讲过了利用`Netty`实现`UDP`客户端,大家有兴趣的话,可以参看下面文章: [Netty实现UDP客户端](https://www.jianshu.com/p/5 ...

  6. Netty源码 服务端的启动

    最近一直在看netty,看完之后就想做点笔记.可是实在是太忙了,挤了还要几个晚上终于挤出来了 上图是服务端的实例代码.大致的流程先梳理一遍. 首先会执行 用于创建两个线程组,boosGroup用于接受 ...

  7. Netty客户端与服务端

    1.Netty客户端 1.1 Bootstrap eventGroup channel remoteAddress option handler ClientHandlerInitializer in ...

  8. 基于Netty的UDP服务端开发

    1.前言 之前基于Netty做了一套TCP与MQTT的服务端,随着系统接入的终端类型越来越多,出现了UDP通讯的设备,虽然这样的设备并非主流,而且通讯机制存在问题,为了考虑系统的兼容性,只能将整套服务 ...

  9. netty获取玩家chanel_基于netty的TCP服务端如何给客户端发送消息,但是如何拿到客户端连接时的SocketChannel呢,菜鸟求助?...

    1.思路1 每个客户端连接时的SocketChannel保存在会话类sessionManager中的sessionIdMap中 问题: 1.客户端连接时确实将SocketChannel保存在会话类se ...

  10. Netty学习02--Netty3服务端

    1.netty版本大致版本分为  netty3.x  和  netty4.x.netty5.x 2.netty可以运用在那些领域? 1)分布式进程通信 例如: hadoop.dubbo.akka等具有 ...

最新文章

  1. 2个YUV视频拼接技术
  2. 开源示波器osc_fun介绍、原理图学习
  3. Exact跻身全球发展最快的云企业行列
  4. 1-2. linux系统结构
  5. ios开发之 icon规范+启动图规范+启动页规范
  6. Visual C++——黄维通《 Visual C++面向对象与可视化程序设计》——例题9-3
  7. css写出三角形(兼容IE)
  8. arm-linux-gcc编译gtk程序,【又7】Arm 版GTK编译
  9. android handler作用,3.2.4 Handler的作用
  10. 【线上直播】:5G时代VR+8K直播 刷新你的视界认知
  11. C#与halcon联合开发——内存溢出
  12. 蓝桥杯试题 算法提高 数组求和
  13. Node.js: NPM 使用介绍
  14. 特斯拉部分车型将逐渐搭载磷酸铁锂电池,比亚迪有望成为其电池供应商
  15. js获取的值传到java_使用GraalVM从javascript将变量参数传递给java函数
  16. 艺术字体手绘,如何进行创作呢
  17. 2021Java实现关注公众号登陆网站
  18. EXCEL中的MID函数查询身份证年龄
  19. 题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。
  20. 飞算soflu软件机器人-低代码的未来

热门文章

  1. 小说阅读网站设计HTML,HTML5+CSS3网站设计基础教程
  2. html打开txt文件怎么打开是乱码了,使用记事本打开TXT文件变乱码的解决办法
  3. ubuntu 18 安装显卡驱动时卡死及系统重装
  4. 英语句子组织的5个步骤
  5. 数字资产期权新手入门手册 | TokenInsight
  6. mysql 枚举索引_MySQL 索引总结
  7. 学习总结以及对接下来的规划
  8. 番外9福冈·狂野老司机告诉你如果装AI·1· ——混合现实科幻《地与光》
  9. 我的理想是学计算机,我的理想作文(精选10篇)
  10. 六月我在工作中蜕变,勤奋小人打架终于赢了