java实现UDP通信传输信息

2023-05-16

实现UDP通信要依靠 DatagramPacket对象进行实现

UDP协议的相关介绍:

UDP传输分为 服务端 和客户端

服务端发送消息 客户端接收消息,服务端需要知晓客户端的 IP和所监听的端口号

话不多说直接上代码:

服务端:

 //1.创建DatagramSocket 对象准备发送和接受数据
        DatagramSocket socket =new DatagramSocket(3000);
        //2. 将需要发送的数据,封装到 DataggramPacket对象
        byte[] data = "今年必须发财!!".getBytes();
        //封装的DataggramPacket对象 data 内容字节数组 ,data.lengtth,IP 端口
        DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getByName("目标的IP"), 2000);

        socket.send(packet);
        socket.close();//关闭资源

        System.out.println("服务端退出!!!");

客户端:

 DatagramSocket  socket =new DatagramSocket(2000); //1:创建一个DatagramSocket

         // 2:构建以DatagranPacket 对象,准备接受数据
         //UDP每个数据包大小在 64K 不适合大量传输数据
           byte [] buf =new byte[256];  //准备数据容器大小
        DatagramPacket packet =new DatagramPacket(buf,buf.length);

        //3.调用接受方法  将通过网络传输的 DatagramPacket对象
        //  填充到packet对象中
        System.out.println("接收端 等待接受数据。。。。。");
         socket.receive(packet);

         //4. 把packet进行拆包 取数据 并显示。
        int length = packet.getLength(); //实际接受到的数据字节长度
        System.out.println("实际长度"+length);
        byte[] data = packet.getData(); //接受到的数据
          String s= new String(data,0,length);

        System.out.println("接收到的数据是:"+s);
        String ip = packet.getSocketAddress().toString(); //发送方的IP地址
        System.out.println("发送方的IP:"+ip);

        System.out.println(ip);

接收端 的结果

值得一提的是 ,接收端在启动后回监听,所设置的端口,当没有接受到数据时就会,处于阻塞状态。一直到接受到数据才会结束。

如果在实验时 在同一台计算机上运行这两个文件,记得服务端和接受端所监听的端口号分开,要不会出现报错的情况,即端口号被占用。

除此之外,在启动顺序上,应先启动接受端,再启动服务端。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java实现UDP通信传输信息 的相关文章

随机推荐

  • 关于螺旋数组的讨论

    下面收集了几种可能的螺旋数组形式以及相应的主代码 供大家学习参考 给定N的值 xff0c 从矩阵的左上角输出顺时针螺旋矩阵 例如N 61 4时 xff0c 输出 xff1a 1 2 3 4 12 13 14 5 11 16 15 6 10
  • 动态链接库dll详解

    动态链接库概述 DLL就是整个Windows操作系统的基础 动态链接库不能直接运行 xff0c 也不能接收消息他们是一些独立的文件 Windows API中的所有函数都包含在DLL中 其中有三个最重要的DLL kernel32 dll xf
  • stm32中printf重定向

    先上代码 加入以下代码 支持printf函数 而不需要选择use MicroLIB if 1 pragma import use no semihosting 标准库需要的支持函数 struct FILE int handle FILE s
  • STM32F103RCTX 串口USART 不定长接收

    串口不定长接收的方法有多种 xff0c 这里我所介绍的是通过设置IDLE中断来检测串口是否接收完毕 xff0c 从而结束串口接受中断 1 首先设置串口 xff0c 如下图所示 xff1a 2 使用IDLE中断检测 xff0c 所以需要开启对
  • ROS通信模式/动作编程(设置收发节点,使小海龟移动到指定位置)以及分布式通信

    文章目录 一 话题 服务模式编程1 1 创建工作空间1 1 1 创建ROS工程包1 1 2 在工作区编译工程包 1 2 话题模式编程1 2 1 创建通信的收 发节点1 2 1 1 在src目录中创建一个发布节点1 2 1 2 在src目录中
  • Ubuntu18.04安装ros(顺利解决 sudo rosdep init 与 rosdep update 存在的问题,附保姆级图文流程)

    Ubuntu18 04 xff08 Ubuntu20 04 xff09 安装ros 顺利解决 sudo rosdep init 与rosdep update 存在的问题 xff0c 附保姆级图文流程 前言 安装了很多次 xff0c 东拼西凑
  • linux命令发送接口请求

    curl k X POST H 34 Accept Encoding gzip deflate 34 H 34 Content type application 34 H 34 x www form urlencoded UTF 8 34
  • UDP协议及编程

    UDP协议 UDP是无连接的 xff0c 即发送数据之前不需要连接 xff0c 因此减少了开销和发送数据之间的时延 UDP使用尽最大努力交付 xff0c 即不保证可靠交付 xff0c 因此主机不需要维持复杂的连接状态表 UDP是面向报文的
  • 24.STM32的IO口扩展PCF8574

    1 IO口扩展芯片 PCF8574是一款带IIC总线 xff0c 可使大多数MCU实现远程I O 口扩展 该器件包含一个8位准双向口和一个IIC总线接口 xff08 通信接口IIC xff0c 2根线可以扩展为8个口 xff09 PCF85
  • 网络编程(二)基础预备知识掌握

    网络编程预备知识 socket 是一种编程接口也是一种文件描述符 xff08 套接字 xff09 可用于 TCP UDP IPX通信 socket的类型 流式套接字 xff08 SOCK STREAM xff09 xff1a 提供一种面向连
  • 使用USTC-TK2016工具对USTC-TFC2016数据集进行处理——报错解决记录

    USTC TK2016数据处理工具 xff1a https github com yungshenglu USTC TK2016 USTC TFC2016数据集 xff1a https github com yungshenglu USTC
  • C++避免头文件重复包含问题

    避免头文件重复包含的方法 xff0c 通常有两种做法 xff1a 条件编译和 pragma once 条件编译就是通常的 ifndef XXX H define XXX H endif ifndef XXX H 表示 xff0c 如果没有包
  • c++ 调用yolov3-yolov4

    ifdef WIN32 define OPENCV define GPU endif include lt iostream gt include lt windows h gt include 34 yolo v2 class hpp 3
  • 一文搞懂UART、RS232、RS485、TTL等常用的接口与协议

    常用的接口与协议 PC机常用的按照接口数量细分为A型 xff08 15针 xff09 xff0c B型 xff08 25针 xff09 xff0c C型 xff08 37针 xff09 xff0c D型 xff08 50针 xff09 xf
  • 解决头文件重复包含与结构体未定义的问题

    一 养成良好的编程习惯 1 保证h文件的纯洁性 xff1a 尽量一个c文件对应一个h文件 xff0c 不要h文件包含许多h文件 这样可以优化编译速度且避免出现h文件中某个结构体之类未定义 xff0c 先在上个h文件中使用的错误 2 对于变量
  • Nokia 5110液晶屏显示模块的使用与开发

    Nokia 5110液晶屏显示模块 我们先来看看他的参数 nbsp 在深入研究连接和示例代码之前 让我们首先看一下其Pinout nbsp RST nbsp 针复位显示 它是低电平有效引脚 您可以通过将其拉低来重置显示 您也可以将此引脚连接
  • mongodb的文档的分页查询

    统计查询使用count xff08 xff09 方法 xff1a 统计comment集合的所有的记录数 xff1a db comment count 分页列表查询 xff1a 可以使用limit xff08 xff09 方法来读取指定数量的
  • 前后端分离项目的部署

    本次项目的项目架构图 xff1a Nginx主要部署的是 项目的静态资源 xff0c 即前端项目 通过Nginx的反向代理 xff0c 将请求发给Tomcat服务器 然后获取数据通过MySQL的主从复制 xff0c 主库负责更新数据 xff
  • echarts基本用法

    目录 tooltip 设置提示框信息 图表的提示框组件 legend 图例组件 toolbox 工具箱组件 可以另存为图片等功能 grid 网格配置 grid可以控制线型图 柱状图 图表大小 xAxs 设置x轴的相关配置 y轴同理 seri
  • java实现UDP通信传输信息

    实现UDP通信要依靠 DatagramPacket对象进行实现 UDP协议的相关介绍 xff1a UDP传输分为 服务端 和客户端 服务端发送消息 客户端接收消息 xff0c 服务端需要知晓客户端的 IP和所监听的端口号 话不多说直接上代码