UDP协议的数据收发

这篇具有很好参考价值的文章主要介绍了UDP协议的数据收发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DatagramSocket使用的UDP连接,客户端不需要先连接数据,可以直接发送给指定服务端。

一、UDP

  • 需要DatagramSocket来进行中间的运输
  • 无连接的传输层协议,提供面向事务的简单不可靠信息传输服务、可能丢失、非常简单、非常小
  • 一切以包为中心
  • 数据传输不用IO流

1.1 发送端(客户端)

  1. 使用DatagramSocket创建端口,创建发送端
  2. 准备数据,一定要转成字节数组!
  3. 准备容器封装成DatagramPacket包裹,需要指定目的地(ip地址和端口)
  4. 发送包裹send(DatagramPacket p)
  5. 释放资源

客户端直接发送,没有连接的过程

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;

public class Client {

    public static void main(String[]args) throws IOException
    {
        System.out.println("发送启动中...");
        //1、使用DatagramSocket指定端口 创建发送端
        DatagramSocket client =new DatagramSocket(8888);
        //2、准备数据,一定要转成字节数组
        String data="我最帅";
        byte[] datas=data.getBytes();
        //3、准备容器封装成DatagramPacket 包裹,需要指定目的地(ip地址和端口),一般localhost处填具体的服务端IP地址
        DatagramPacket packet=new DatagramPacket(datas,0,datas.length,new InetSocketAddress("localhost",9999));
        //4、发送包裹send(DatagramPacket p);
        client.send(packet);
        //5、释放资源
        client.close();
    }
}

1.2  接收端(服务端)

  1. 使用DatagramSocket创建端口,创建接收端
  2. 准备容器封装成DatagramPacket包裹
  3. 阻塞式接收包裹receive(DatagramPacket p)
  4. 分析数据getDate返回类型为字节数组,getLength返回数据长度,类型为int
  5. 释放资源

如果控制台报错:Address already in use: Cannot bind同一个协议下端口不允许冲突

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class http {

    public static void main(String[]args) throws  Exception
    {
        System.out.println("接收方启动中...");
        //1、使用DatagramSocket指定端口 创建接收端
        DatagramSocket server=new DatagramSocket(9999);//同一台电脑上端口不要冲突
        //2、准备容器封装成DatagramPacket 包裹
        byte[] container=new byte[1024*60];
        DatagramPacket packet=new DatagramPacket(container,0,container.length);
        //3、阻塞式接受包裹receive(DatagramPacket p);
        server.receive(packet);//阻塞式,有等待时间
        //4、分析数据getData()返回类型为字节数组,getLength()返回数据长度,类型为int
        byte[] datas=packet.getData();
        int len=packet.getLength();
        System.out.println(new String(datas,0,datas.length));
        //5、释放资源
        server.close();
    }

}

UDP协议数据的收发,更具体的可以参考这位up主:https://www.bilibili.com/video/BV1FS4y1q7xJ/?spm_id_from=333.788&vd_source=b1d8c91e4b639b607f57ecbe006db5c7文章来源地址https://www.toymoban.com/news/detail-646221.html

到了这里,关于UDP协议的数据收发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机网络-传输层(UDP协议报文格式,伪首部,UDP校验过程)

    UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。 UDP的主要特点: UDP是无连接的,减少开销和发送数据之前的时延。 UDP使用最大努力交付,即不保证可靠交付。 UDP是面向报文的,适合一次性传输少量数据的网终应用。 应用层给UDP多长的报文,UDP就照样

    2023年04月25日
    浏览(34)
  • 【计算机网络】UDP/TCP协议

    我们先来看一张图; 在研究UDP前我们先来回答两个问题: 有效载荷如何与报头分离? 如何将有效载荷交付? 第一个问题由于在报头里面有16位UDP长度(表示的是有效载荷+报头长度),而报头长度8字节是固定的,所以分离时我们只需要用整个报文的大小减去固定的8字节报头数据即

    2024年02月08日
    浏览(51)
  • 【计算机网络】UDP/TCP 协议

    端口号(Port)标识了一个主机上进行通信的不同的应用程序。在 TCP/IP 协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信(可以通过netstat -n查看)。 0 - 1023: 知名端口号,HTTP, FTP, SSH 等这些广为使用的应用层协议,它们的

    2024年03月14日
    浏览(47)
  • 【计算机网络】TCP协议与UDP协议详解

    文章目录 一、传输层 1、1 再次理解传输层 1、2 再次理解端口号 1、2、1 端口号范围划分 1、2、2 认识知名端口号 1、3 网络常用指令netstat 与 pidof 二、UDP协议 2、1 UDP协议的报文 2、2 UDP的特点  2、3 UDP的缓冲区 三、TCP协议 3、1 TCP协议的报文 3、2 确认应答 3、3 按序到达 3、

    2024年02月08日
    浏览(40)
  • 【计算机网络之TCP/UDP篇】TCP与UDP协议详细介绍

    目录 一、TCP协议 1.1 TCP协议段 1.2  TCP的原理 1.2.1   确认应答机制(安全机制) 1.2.2 超时重传机制(安全机制) 1.2.3  TCP是如何实现可靠性传输? 1.2.4   连接管理机制(安全机制) 1.2.5  滑动窗口机制(效率机制) 1.2.6 流量控制机制 1.2.7 拥塞控制(安全机制) 1.2.8  延

    2024年02月07日
    浏览(43)
  • [计算机网络] 实验3 UDP协议分析

    实验目的 掌握运输层 UDP 协议内容 理解 UDP 协议的工作原理 了解应用层和运输层协议的关系 实验内容 1.DNS查询UDP数据分析 要求 : 使用 t c p d u m p tcpdump t c p d u m p 抓取 D N S DNS D N S 查询网络通信数据包,利用 w i r e s h a r k wireshark w i r e s h a r k 分析 U D P UDP U D P 数据 例如 : d i

    2023年04月26日
    浏览(36)
  • 计算机网络笔记:TCP协议 和UDP协议(传输层)

    TCP 和 UDP都是传输层协议,他们都属于TCP/IP协议族。 TCP的全称是 传输控制协议 是一种 面向连接的、可靠的、基于字节流 的 传输层 通信协议。TCP 是面向连接的、可靠的流协议(流就是指不间断的数据结构) TCP报文 是TCP层传输的数据单元,也称为 报文段 ,一个TCP报文段由

    2024年02月02日
    浏览(39)
  • 计算机网络 — UDP协议(看这一篇就可以

    UDP是传输层的重要协议之一,另一重要协议为TCP协议。两者对比: TCP 协议复杂,但传输可靠。 UDP 协议简单,但传输不可靠。 UDP协议 全称为:User Datagram Protocol(用户数据报协议)。 它是一个简单的 面向数据报 的传输层协议。提供的是无连接的、不可靠的数据流传输。它只

    2024年01月23日
    浏览(78)
  • 【计算机网络实验】实验四 TCP/UDP协议分析

    目录 一、TCP连接建立过程分析 二、TCP关闭连接过程分析 三、6号报文分析 四、A方TCP报文序列号分析 五、计算 六、UDP协议分析 图 1 第一次握手 第一次握手:客户端将标志位 SYN 置为 1 ,随机产生一个值 SEQ = X = 0 ,并将该数据包发送给服务器,等待服务器确认; 图 2 第二次

    2024年02月03日
    浏览(41)
  • 计算机网络:TCP协议的三次握手和四次挥手与UDP协议区别.

    TCP协议: UDP协议: TCP协议与UDP协议都工作在传输层. TCP协议与UDP协议它们的目标: TCP协议与UDP协议的最大区别: TCP协议保持连接的三个关键步骤: UDP协议: TCP协议与UDP协议主要区别: 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的

    2023年04月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包