• UDP用户数据报协议


    UDP

    UDP它是属于TCP/IP协议族中的一种。是无连接的协议,发送数据前不需要建立连接,是没有可靠 性的协议。因为不需要建立连接所以可以在在网络上以任何可能的路径传输,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。

    UDP 的主要特点:

    1. UDP 是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延。
    2. UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
    3. UDP 是面向报文的,发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界
    4. UDP 没有拥塞控制,因此网络出现的拥塞不会使源主机的发送速率降低
    5. UDP 支持一对一、一对多、多对一和多对多的交互通信。
    6. UDP 的首部开销小,只有8个字节,比TCP的20个字节的首部要短

    本地同一台机器

    接收方

    1. //接收方
    2. public class Recv {
    3. public static void main(String[] args) throws Exception {
    4. //打开监听端口,等待发送方的发送数据。注意这里不会建立连接
    5. DatagramSocket ds = new DatagramSocket(9000);
    6. //创建空数据报用于接收发送的数据,注意字节数组的长度不能小于需要接收的内容长度,否则会有截取部分的问题
    7. byte[] buffer=new byte[8192];
    8. DatagramPacket dp=new DatagramPacket(buffer,buffer.length);
    9. //阻塞当前线程等待发送的数据到达,接收后数据会填充到空数据报种
    10. ds.receive(dp);
    11. System.out.println(dp.getAddress()); //发送方的IP地址
    12. System.out.println(dp.getPort()); //发送方的端口号
    13. byte[] data=dp.getData(); //接收到的数据
    14. System.out.println(new String(data));
    15. ds.close();
    16. }
    17. }

    发送方 

    1. public class Sender {
    2. public static void main(String[] args) throws Exception {
    3. // 随意打开一个空闲端口,用于发送数据报
    4. DatagramSocket ds = new DatagramSocket();
    5. // 需要发送的具体数据
    6. String str = "你好!";
    7. byte[] arr = str.getBytes();
    8. // 构建对应的数据报
    9. // 参数1是发送的具体数据,参数2是具体数据的长度,参数3是接收方的IP地址,参数4是接收方的端口号
    10. DatagramPacket dp = new DatagramPacket(arr, arr.length, InetAddress.getByName("localhost"), 9000);
    11. ds.send(dp); //将数据报发送到网络上,由各个数据报自行寻址到目标地
    12. ds.close();
    13. }
    14. }

     

  • 相关阅读:
    linux中用date命令获取昨天、明天或多天前后的日期
    《QDebug 2022年6月》
    Docker和容器化:简介和使用案例
    Golang学习日志 ━━ 部署Gin-Vue-Admin到windows系统并启用IIS服务,顺便学习如何设置IIS反向代理
    如何使用tornado将python代码封装成api
    如何保护 LDAP 目录服务中的用户安全?
    在ComboBox1中塞入key和value,并取值。
    分享积分兑换小程序开发制作功能介绍
    C++一些细碎知识点(持续更新)
    《protobuf》入门
  • 原文地址:https://blog.csdn.net/weixin_50518344/article/details/126878475