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

网络编程-UDP协议(发送数据和接收数据)

需要了解TCP协议的,可以看往期文章
https://blog.csdn.net/weixin_43860634/article/details/133274701

TCP/IP参考模型

通过此图,可以了解UDP所在哪一层级中
在这里插入图片描述

代码案例

发送数据

package com.hidata.devops.paas.udp;import java.io.IOException;
import java.net.*;/*** @Description : UDP通信程序(发送数据)* @Date: 2023-09-25 14:34*/
public class SendMessageDemo {public static void main(String[] args) throws IOException {//发送数据//1、创建DatagramSocket对象(快递公司)DatagramSocket datagramSocket = new DatagramSocket();//2、打包数据String str = "你好";byte[] bytes = str.getBytes();InetAddress address = InetAddress.getByName("127.0.0.1");int port = 5000;DatagramPacket p = new DatagramPacket(bytes,bytes.length,address,port);//3、发送数据datagramSocket.send(p);//4、释放资源datagramSocket.close();}
}

接收数据

package com.hidata.devops.paas.udp;import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;/*** @Description : UDP通信程序(接收数据)* @Date: 2023-09-25 14:34*/
public class ReceiveMessageDemo {public static void main(String[] args) throws IOException {//接收数据//1、创建DatagramSocket对象(快递公司)DatagramSocket datagramSocket = new DatagramSocket(5000);//2、接收数据包byte[] bytes = new byte[1024];DatagramPacket p = new DatagramPacket(bytes,bytes.length);System.out.println("111");datagramSocket.receive(p);System.out.println("222");//3、解析数据包byte[] data = p.getData();int len = p.getLength();InetAddress address = p.getAddress();int port = p.getPort();System.out.println("接收到的数据:" + new String(data,0,len));System.out.println("该数据是从" + address + "这台电脑中的 " + port + "这个端口发出的");//4、释放资源datagramSocket.close();}
}

运行效果

111
222
接收到的数据:你好
该数据是从/127.0.0.1这台电脑中的 57057这个端口发出的Process finished with exit code 0

在这里插入图片描述

额外补充

  • 1、UDP是面向无连接通信协议(通俗一点讲,就是不管是否已连接成功,直接发送数据),该特性正好与TCP协议相反,TCP协议是面向连接的通信协议,要先确保连接成功,才会发数据
  • 2、UDP协议传输的 速度快,有大小限制一次最多发送64k,数据不安全,易丢失
  • 3、UDP适用场景:语音通话,网络会议,视频通话等领域,对数据部分丢失,要求不是严格

相关文章:

网络编程-UDP协议(发送数据和接收数据)

需要了解TCP协议的,可以看往期文章 https://blog.csdn.net/weixin_43860634/article/details/133274701 TCP/IP参考模型 通过此图,可以了解UDP所在哪一层级中 代码案例 发送数据 package com.hidata.devops.paas.udp;import java.io.IOException; …...

AI绘画普及课【一】绘画入门

文章目录 一、AI 绘画入门1、Stable Diffusion VS. MidJourney2、Stable Diffusion 介绍3、Stable Diffusion 环境搭建4、文生图与图生图 一、AI 绘画入门 1、Stable Diffusion VS. MidJourney Midjourney 优点: 操作简单、出图绚丽多彩 缺点: 订阅付费充钱 内容有限制&a…...

Selenium和Requests搭配使用

Selenium和Requests搭配使用 前要1. CDP2. 通过requests控制浏览器2. 1 代码一2. 2 代码2 3. 通过selenium获取cookie, requests携带cookie请求 前要 之前有提过, 用selenium控制本地浏览器, 提高拟人化,但是效率比较低,今天说一种selenium和requests搭配使用的方法 注意: 一定…...

【JDK 8-函数式编程】4.4 Supplier

一、Supplier 接口 二、实战 Stage 1: 创建 Student 类 Stage 2: 创建方法 Stage 3: 调用方法 Stage 4: 执行结果 一、Supplier 接口 供给型 接口: 无入参,有返回值(T : 出参类型) 调用方法: T get(); 用途: 如 无参的工厂方法&#x…...

后端大厂面试-16道面试题

1 java集合类有哪些? List是有序的Collection,使用此接口能够精确的控制每个元素的插入位置,用户能根据索引访问List中元素。常用的实现List的类有LinkedList,ArrayList,Vector,Stack。 ArrayList是容量…...

产品经理认证(UCPM)备考心得

UCPM是联合国训练所CIFAL中心颁发的产品经理证书。如今,ESG是推动企业可持续发展的新潮流。UCPM作为一种可持续发展证书,为我们带来了一套先进科学、系统全面的产品管理模式,是产品管理领域公认的权威证书。那么,如何准备这张证书…...

E : A DS顺序表_删除有序表中的重复元素

Description 给定一个按升序排列的顺序表,请删除所有重复的元素,使得每个元素只出现一次,并输出处理后的顺序表。 Input 第一行输入t,表示有t个测试样例。 第二行起,每一行首先输入n,表示有n个元素&…...

前端教程-vite

官网 Vite中文网 视频教程 Vite世界指南(带你从0到1深入学习 vite)...

Java笔记三

包机制: 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。 包语句的语法格式为:pack pkg1[. pkg2[. pkg3...]]; 般利用公司域名倒置作为包名;如com.baidu.com,如图 导包: 为了能够…...

ElementUI之首页导航与左侧菜单

目录 一、Mock 1.1 什么是Mock.js 1.2 安装与配置 1.2.1 安装mock.js 1.2.2 引入mock.js 1.3 mock.js使用 1.3.1 定义测试数据文件 1.3.2 mock拦截Ajax请求 1.3.3 界面代码优化 二、总线 2.1 定义 2.2 类型分类 2.3 前期准备 2.4 配置组件与路由关系 2.4.1 配置…...

java项目之在线教育资源管理系统(ssm源码+文档)

项目简介 在线教育资源管理系统实现了以下功能: 管理员:个人中心、学生管理、教师管理、公告信息管理、课程信息管理、试题管理、留言板管理、管理员管理、试卷管理、系统管理、考试管理。学生:个人中心、留言板管理、考试管理,…...

C/S架构学习之UDP服务器

UDP服务器的实现流程:一、创建用户数据报套接字(socket函数):通信域选择IPV4网络协议、套接字类型选择数据报式; int sockfd socket(AF_INET,SOCK_DGRAM,0); 二、填充服务器的网络信息结构体:1.定义网络信…...

磁盘占用率100% 的优化方案

1.禁用不必要的系统服务 右键点击此电脑,打开管理 打开服务 寻找SysMain 右键属性 》 禁用 》 停止 》 应用 SysMain的作用:当开机后,windows会加载大量的应用程序预加载到内存中,会在后台预加载数据(如果是旧版本win…...

vue组件的通信

文章目录 组件通信父传子父传子:通过prop来进行通信 子传父先在父组件用注册方法 , 在子组件触发使用 emit 函数 组件间通信-平行组件使用事件总线的方法,也就是把整个vue提出来,当为一个事件总线 其他组件通信父组件 provide来提供变量,然后再子组件中通过inject来注入变量 组…...

(搞定)排序数据结构(1)插入排序 选择排序+冒泡排序

目录 本章内容如下 一:插入排序 1.1插入排序 1.2希尔排序 二:选择排序 2.1选择排序 三:交换排序 3.1冒泡排序 一:插入排序 1.1直接插入排序 说到排序,其实在我们生活中非常常见&…...

C++ 类访问修饰符 public、private、protected

数据封装是面向对象编程的一个重要特点,它防止函数直接访问类类型的内部成员。类成员的访问限制是通过在类主体内部对各个区域标记 public、private、protected 来指定的。关键字 public、private、protected 称为访问修饰符。 一个类可以有多个 public、protected…...

pytorch学习笔记——BCE与CE

BCELoss的话只需要网络输出一个通道,CE Loss(Cross Entropy Loss)需要输出n_class个通道。 对于二分类任务可以使用CE Loss输出两个通道,也可以使用BCE Loss输出一个通道。 https://www.jianshu.com/p/5b01705368bb https://zhuanlan.zhihu.com/p/372628…...

win使用git(保姆级教程)

序言 上学期间用的git并不多,但是从研三实习以及后面工作来看,git是一项必备技能,所以在此来学习一下。 下载git安装包 打开网站,根据需求来下载;一般按照如下方式进行下载: 然后安装的时候记得按下图勾…...

Python图像处理-----几何变换

文章目录 一、图像几何变换理论二、图像平移2.1 使用数学公式的实现方式为:2.2 使用矩阵实现的方式为2.3 使用opencv三、图像缩放3.1 用数学式子表示为公式(a为缩放系数):3.2 用矩阵表示如公式所示:一、图像几何变换理论 图像几何变换不改变图像的像素值,在图像平面上进行像…...

如何正确选择研究方向?如何实现论文创新?

学术评价是遵循“质量第一”原则的,所以对于研究生来说,从一开始就要把路子走正,自觉树立精品意识,把精力高度集中到提高学位论文的质量上来。这里,根据本人多年来指导博士和硕士研究生的体会,就人文社科研究生学位论文的选题与创新略述管见。 学位论文选题的两个层面 …...

基于加速度计的体感音乐控制器:用MakeCode与Circuit Playground Express实现交互式乐器

1. 项目概述:当硬件编程遇见音乐创作 如果你对嵌入式开发、物理计算或者音乐技术感兴趣,但又觉得从零开始门槛太高,那么这个项目可能就是为你量身定做的。今天我们来聊聊如何用一块巴掌大的开发板——Adafruit的Circuit Playground Express&a…...

K-Means聚类选K避坑指南:当肘部法则“失灵”,轮廓系数如何救场?

K-Means聚类选K避坑指南:当肘部法则"失灵",轮廓系数如何救场? 在数据科学实践中,K-Means算法因其简洁高效而广受欢迎,但确定最佳聚类数K却常让从业者陷入困境。当面对高维、噪声多或分布不平衡的真实业务数据…...

AI智能体编排框架Agent-Octo:章鱼架构解析与实战应用

1. 项目概述:当AI智能体遇上“章鱼”架构最近在开源社区里,一个名为purton-tech/agent-octo的项目引起了我的注意。乍一看这个标题,你可能会想,这又是一个AI智能体(Agent)框架。没错,它的核心确…...

【LeetCode刷题日记】112.递归中的「减法思维」:一题带你打通二叉树路径求和的任督二脉

🔥个人主页:北极的代码(欢迎来访) 🎬作者简介:java后端学习者 ❄️个人专栏:苍穹外卖日记,SSM框架深入,JavaWeb ✨命运的结局尽可永在,不屈的挑战却不可须臾或…...

NotebookLM大纲自动生成正在淘汰传统笔记法(内部白皮书泄露:Google Labs 2024 Q2 A/B测试结果首次公开)

更多请点击: https://intelliparadigm.com 第一章:NotebookLM大纲自动生成正在淘汰传统笔记法(内部白皮书泄露:Google Labs 2024 Q2 A/B测试结果首次公开) Google Labs 2024年第二季度A/B测试数据显示,启用…...

大型知识竞赛的技术保障:构建服务器、网络与备用方案的坚实堡垒

🏗️ 大型知识竞赛的技术保障:构建服务器、网络与备用方案的坚实堡垒稳定 高效 安全 让技术成为竞赛的隐形支撑🎯 引言:技术保障是竞赛成功的基石一场成功的大型知识竞赛,其精彩纷呈的背后,离不开一套周…...

掌握高效B站会员购抢票技巧:biliTickerBuy实战指南

掌握高效B站会员购抢票技巧:biliTickerBuy实战指南 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy biliTickerBuy是一款专为B站会员购平台设计的开源抢票辅助工具,通过P…...

多语言支持秘籍:validatorjs国际化错误消息配置终极指南

多语言支持秘籍:validatorjs国际化错误消息配置终极指南 【免费下载链接】validatorjs A data validation library in JavaScript for the browser and Node.js, inspired by Laravels Validator. 项目地址: https://gitcode.com/gh_mirrors/va/validatorjs …...

从零到发刊:NotebookLM在有机合成路线设计中的7步闭环工作法,北大化学院实验室内部培训材料首次公开

更多请点击: https://codechina.net 第一章:NotebookLM化学研究辅助 NotebookLM 是 Google 推出的基于 AI 的研究协作者,专为深度阅读、知识整合与推理设计。在化学研究场景中,它可高效处理文献 PDF、实验记录、光谱数据报告及教…...

3分钟学会Charticulator:零代码制作专业数据图表的终极指南

3分钟学会Charticulator:零代码制作专业数据图表的终极指南 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 还在为制作专业图表而头疼吗?…...