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

【Linux】UDP通信

udp使用的是数据报传输。可以一对一,一对多进行传输,用于快速,实时性高的场景

服务器端:
使用步骤:
1.创建socket
2.bind绑定可接收的客户端
3.while{
recv接收数据
send发送数据
}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <netinet/in.h>int main()
{// 创建socketint cfd = socket(AF_INET, SOCK_DGRAM, 0);if (cfd < 0){perror("socket error");return -1;}// 绑定struct sockaddr_in serv;struct sockaddr_in clientsock;bzero(&serv, sizeof(serv));serv.sin_family = AF_INET;serv.sin_port = htons(9999);serv.sin_addr.s_addr = htonl(INADDR_ANY);bind(cfd, (struct sockaddr *)&serv, sizeof(serv));int i;int n;socklen_t len;char buf[1024];while (1){// 读取数据memset(buf, 0x00, sizeof(buf));len = sizeof(clientsock);n = recvfrom(cfd, buf, sizeof(buf), 0, (struct sockaddr *)&clientsock, &len);// 将大写转换为小写for (i = 0; i < n; i++){buf[i] = toupper(buf[i]);}char sIP[16];memset(sIP, 0x00, sizeof(sIP));printf("ip:[%s] port:[%d] n:[%d], buf:[%s]\n", inet_ntop(AF_INET, &clientsock.sin_addr.s_addr, sIP, sizeof(sIP)), ntohs(clientsock.sin_port), n, buf);// 发送数据sendto(cfd, buf, n, 0, (struct sockaddr *)&clientsock, len);}// 关闭套接字close(cfd);return 0;
}

客户端:
使用步骤:
1.创建socket
2.while{
send发送数据
接受数据

}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <ctype.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <netinet/in.h>int main()
{//创建socketint cfd = socket(AF_INET, SOCK_DGRAM, 0);if(cfd<0){perror("socket error");return -1;}int n;char buf[1024];struct sockaddr_in serv;serv.sin_family = AF_INET;serv.sin_port = htons(9999);inet_pton(AF_INET, "192.168.3.99", &serv.sin_addr.s_addr);while(1){//读标准输入数据memset(buf, 0x00, sizeof(buf));n = read(STDIN_FILENO, buf, sizeof(buf));//发送数据sendto(cfd, buf, n, 0, (struct sockaddr *)&serv, sizeof(serv));//读取数据memset(buf, 0x00, sizeof(buf));n = recvfrom(cfd, buf, sizeof(buf), 0, NULL, NULL);printf("n:[%d], buf:[%s]\n", n, buf);}//关闭套接字close(cfd);return 0;
}

相关文章:

【Linux】UDP通信

udp使用的是数据报传输。可以一对一&#xff0c;一对多进行传输&#xff0c;用于快速&#xff0c;实时性高的场景 服务器端&#xff1a; 使用步骤&#xff1a; 1.创建socket 2.bind绑定可接收的客户端 3.while{ recv接收数据 send发送数据 } #include <stdio.h> #inclu…...

日期格式、JSR303校验

日期格式 public class Monster() {DateTimeFormat(pattern "yyyy-MM-dd")private Date birthday; } 输入&#xff1a;2024-11-12&#xff0c; 输出&#xff1a;Monster{birthdaySun Nov 12 00:00:00 CST 2024} public class Monster {JsonFormat(pattern &…...

ELK系列-(六)Redis也能作为消息队列?(上)

一、前文回顾 &#x1f50d; 在前面的ELK系列中&#xff0c;我们已经搭建了ELK的核心组件&#xff0c;包括&#xff1a; ELK系列-&#xff08;一&#xff09;Docker部署ELK核心组件ELK系列-&#xff08;二&#xff09;LogStash数据处理的瑞士军刀ELK系列-&#xff08;三&…...

点击展示大图预览

原文链接在table表格里能够实现&#xff0c;点击里面的图片实现大图预览的效果&#xff1b; 一、先安装viewer — 使用npm安装 npm install v-viewer --save二、在main.js中引入 import Viewer from v-viewer //点击图片大图预览 import viewerjs/dist/viewer.css Vue.use(…...

游戏AI实现-寻路算法(BFS)

广度优先搜索算法&#xff08;英语&#xff1a;Breadth-first search&#xff0c;缩写&#xff1a;BFS&#xff09;&#xff0c;又译作宽度优先搜索&#xff0c;或横向优先搜索&#xff0c;是一种图形搜索算法。 寻路地图搭建&#xff1a; 游戏AI实现-寻路地图搭建-CSDN博客 …...

tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)

任务一&#xff1a;What is HTTP(S)?&#xff08;什么是http&#xff08;s&#xff09;&#xff09; 1.What is HTTP? (HyperText Transfer Protocol)&#xff08;什么是 HTTP&#xff1f;&#xff08;超文本传输协议&#xff09;&#xff09; http是你查看网站的时候遵循的…...

CNN和Transfomer介绍

文章目录 CNN和Transfomer介绍CNN和Transfomer的区别1. **基本概念**2. **数据处理方式**3. **模型结构差异**4. **应用场景区别** 自注意力机制1. **自注意力机制的概念**2. **自注意力机制的实现步骤**3. **自注意力机制的优势** Transformer结构组成1. **多头注意力层&#…...

37. Three.js案例-绘制部分球体

37. Three.js案例-绘制部分球体 实现效果 知识点 WebGLRenderer WebGLRenderer 是Three.js中的一个渲染器类&#xff0c;用于将3D场景渲染到网页上。 构造器 WebGLRenderer( parameters : Object ) 参数类型描述parametersObject渲染器的配置参数&#xff0c;可选。 常用…...

Latex+VsCode+Win10搭建

最近在写论文&#xff0c;overleaf的免费使用次数受限&#xff0c;因此需要使用本地的形式进行编译。 安装TEXLive 下载地址&#xff1a;https://mirror-hk.koddos.net/CTAN/systems/texlive/Images/ 下载完成直接点击iso进行安装操作。 安装LATEX Workshop插件 设置VsCode文…...

【ETCD】【Linearizable Read OR Serializable Read】ETCD 数据读取:强一致性 vs 高性能,选择最适合的读取模式

ETCD 提供了两种不同类型的读取操作方式&#xff0c;分别是 Linearizable Read&#xff08;线性化读取&#xff09;和 Serializable Read&#xff08;可串行化读取&#xff09;。这两种方式主要区分在读取数据时对一致性的要求不同。 目录 1. Linearizable Read&#xff08;线…...

windows下搭建本地sofa-registry

官方介绍&#xff1a; SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。SOFARegistry 最早源自于淘宝的 ConfigServer&#xff0c;十年来&#xff0c;随着蚂蚁金服的业务发展&#xff0c;注册中心架构已经演进至第五代。目前 SOFARegistry 不仅全面服…...

什么是MyBatis

MyBatis 简介 MyBatis 是一个流行的 Java 持久层框架&#xff08;Persistence Framework&#xff09;&#xff0c;它主要用于简化数据库操作&#xff0c;提供了对数据库的映射支持&#xff0c;使得开发人员能够通过简单的配置和映射文件来执行数据库操作&#xff08;如增、删、…...

Docker如何运行一个Java的jar包程序

Docker如何运行一个Java的jar包程序 1、jar包程序 2、start.sh运行jar包脚本 #!/bin/bash #进入目录 cd /app #1.下载SDK并安装 java -jar SDKDown1.4.jar #2.加载环境变量 export LD_LIBRARY_PATH/opt/casb/CipherSuiteSdk_linux/lib echo $LD_LIBRARY_PATH #3.执行SDK java …...

c语言----顺序结构

顺序结构的基本概念 定义&#xff1a;顺序结构是C语言程序中最基本的结构&#xff0c;它按照语句的先后顺序依次执行。就像我们日常做事一样&#xff0c;一步一步地按照顺序来完成任务。在C语言程序中&#xff0c;从程序的第一条语句开始&#xff0c;逐句向下执行&#xff0c;…...

BERT采用双向训练

BERT采用双向训练 定义 BERT(Bidirectional Encoder Representations from Transformers)是一种基于Transformer架构的预训练语言模型。它在自然语言处理(NLP)领域具有极其重要的地位,由谷歌在2018年提出,能够对文本进行深度的语义理解,从而广泛应用于各种语言相关的任务…...

流程引擎Activiti性能优化方案

流程引擎Activiti性能优化方案 Activiti工作流引擎架构概述 Activiti工作流引擎架构大致分为6层。从上到下依次为工作流引擎层、部署层、业务接口层、命令拦截层、命令层和行为层。 基于关系型数据库层面优化 MySQL建表语句优化 Activiti在MySQL中创建默认字符集为utf8&…...

安卓 文件管理相关功能记录

文件管理细分为图片、视频、音乐、文件四类 目录 权限 静态声明权限 动态检查和声明权限方法 如何开始上述动态申请的流程 提示 图片 获取图片文件的对象列表 展示 删除 视频 获取视频文件的对象列表 获取视频file列表 按日期装载视频文件列表 展示 播放 删除…...

监控视频汇聚融合云平台一站式解决视频资源管理痛点

随着5G技术的广泛应用&#xff0c;各领域都在通信技术加持下通过海量终端设备收集了大量视频、图像等物联网数据&#xff0c;并通过人工智能、大数据、视频监控等技术方式来让我们的世界更安全、更高效。然而&#xff0c;随着数字化建设和生产经营管理活动的长期开展&#xff0…...

【jvm】主要参数

Java 虚拟机&#xff08;JVM&#xff09;有许多参数用于控制其行为和性能&#xff0c;下面是一些 主要的 JVM 启动参数&#xff0c;这些参数通常分为以下几类&#xff1a; 内存管理相关参数 这些参数主要用来配置 JVM 的内存分配策略、堆内存、栈内存等。 -Xms 设置 JVM 启动…...

在Ubuntu中配置mysql,并允许外部访问数据库

在虚拟机中安装 MySQL 并允许外部访问&#xff0c;可以按照以下步骤操作&#xff1a; 1. 更新系统包 首先&#xff0c;确保你的系统是最新的&#xff0c;使用以下命令更新包列表&#xff1a; sudo apt update sudo apt upgrade2. 安装 MySQL Server 安装 MySQL 服务&#x…...

Golang的向前兼容性和toolchain规则,Go1.21.0

在 Go 1.21 中&#xff0c;在工具上新增了两个变化&#xff1a;增强了向前兼容性&#xff1b;工具链管理。 向前兼容性 在以前的版本中&#xff0c;Go 工具链尝试编译依赖于新版本的代码时&#xff0c;可能会遇到兼容性问题。例如&#xff0c;如果你的代码依赖于 Go 1.18 引入…...

如何有效修复ffmpeg.dll错误:一站式解决方案指南

当您遇到提示“ffmpeg.dll文件丢失”的错误时&#xff0c;这可能导致相关的应用程序无法启动或运行异常。本文将详细介绍如何有效地解决ffmpeg.dll文件丢失的问题&#xff0c;确保您的应用程序能够恢复正常运行。 ffmpeg.dll是什么&#xff1f;有哪些功能&#xff1f; ffmpeg.…...

更频繁的 Android SDK 发布:更快的创新、更高的质量和更完善

Android 一直致力于让创新更快地进入用户手中。除了每年的平台发布之外&#xff0c;我们还投资了Project Treble、Mainline、Google Play 服务、每月安全更新和季度发布&#xff0c;为 Pixel Drops 提供支持。 未来&#xff0c;Android 将更频繁地发布 SDK&#xff0c;计划于 …...

远程连接:构建智能家居舒适生活

远程连接技术让智能家居从梦想照进现实&#xff0c;为人们构建了舒适便捷的生活环境。通过家庭网络与各种智能设备的远程连接&#xff0c;用户可以在外出时&#xff0c;使用手机 APP 轻松控制家中的灯光、窗帘、空调、电视等设备。 例如&#xff0c;在炎热的夏天&#xff0c;下…...

Python 爬取网页文字并保存为 txt 文件教程

引言 在网络数据获取的过程中&#xff0c;我们常常需要从网页中提取有用的文字信息。Python 提供了强大的库来帮助我们实现这一目标。本教程将以https://theory.gmw.cn/2023 - 08/31/content_36801268.htm为例&#xff0c;介绍如何使用requests库和BeautifulSoup库爬取网页文字…...

多协议视频监控汇聚/视频安防系统Liveweb搭建智慧园区视频管理平台

智慧园区作为现代化城市发展的重要组成部分&#xff0c;不仅承载着产业升级的使命&#xff0c;更是智慧城市建设的重要体现。随着产业园区竞争的逐渐白热化&#xff0c;将项目打造成完善的智慧园区是越来越多用户关注的内容。 然而我们往往在规划前期就开始面临众多难题&#…...

InnoDB 查询成本

1. 单表查询成本 连接查询总成本 IO 成本 CPU 成本对于 InnoDB 存储引擎来说&#xff0c;页是磁盘和内存之间交互的基本单位&#xff0c;设计MySQL的大叔规定读取一个页面花费的成本默认是 1.0&#xff0c;读取以及检测一条记录是否符合搜索条件的成本默认是 0.2。1.0、0.2 …...

C++的高精度减法 分步详解

高精度减法计算原理 在读小学时&#xff0c;我们做减法都采用竖式方法&#xff0c;如图 1 所示。 这样&#xff0c;我们可以写出两个整数相减的算法。 我们就可以用 C 语言来模拟这个竖式减法的过程。我们可以考虑利用 C 的数组来存储对应数据&#xff0c;假设用数组 A 存储被…...

linux cpu 管理

视频教程&#xff1a;ubuntu cpu 管理_哔哩哔哩_bilibili 概述 平均负载&#xff0c;CPU 使用率&#xff0c;CPU上下文 1 平均负载 #查看命令&#xff1a; rootzyb:~# uptime 18:21:47 up 1:09, 2 users, load average: 0.00, 0.00, 0.00 依次则是过去 1 分钟、5 分钟、1…...

大批量URL去重的架构设计(redis-bitmap+redisson)

1. 引言 什么是数据去重&#xff1f; 在大数据处理中&#xff0c;去重是指消除重复数据&#xff0c;只保留唯一的数据记录。 去重的重要性 提高数据处理效率&#xff0c;节省存储空间&#xff0c;提升数据分析的准确性。 常见的去重技术 基于哈希函数、布隆过滤器、位图等方法…...

WebGPU跨平台应用开发

对于 Web 开发人员来说&#xff0c;WebGPU 是一个 Web 图形 API&#xff0c;可提供对 GPU 的统一和快速访问。WebGPU 公开了现代硬件功能&#xff0c;并允许在 GPU 上进行渲染和计算操作&#xff0c;类似于 Direct3D 12、Metal 和 Vulkan。 虽然这是真的&#xff0c;但这个故事…...

Proteus(8.15)仿真下载安装过程(附详细安装过程图)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、Proteus是什么&#xff1f; 二、下载链接 三、下安装步骤 1.解压&#xff0c;有键管理员运行 2.点击Next&#xff0c;进行下一步 3.勾选I accept…&#…...

vlan和vlanif

文章目录 1、为什么会有vlan的存在2、vlan(虚拟局域网)1、vlan原理1. 为什么这样划分了2、如何实现不同交换机相同的vlan实现互访呢3、最优化的解决方法&#xff0c;vlan不同交换机4、vlan标签和vlan数据帧 5、vlan实现2、基于vlan的划分方式1、基于接口的vlan划分方式2、基于m…...

Unity开发哪里下载安卓Android-NDK-r21d

google的东西&#xff0c;居然是完全开源的 真的不是很多公司能做到&#xff0c;和那种伪搜索引擎是不同的 到底什么时候google才会开始造车 不过风险很多&#xff0c;最好不要合资&#xff0c;风险更大...

期末速成C++【初识C++】

目录 1.英文单词 2.C的特点 3.C对C语言的补充 3.1命名空间和域操作符 &#x1f387;3.2控制台输入输出 3.3类型增强 3.3.1const常变量 3.3.2const与指针 3.3.3布尔类型与枚举类型 3.4默认参数 &#x1f387;3.5函数重载 &#x1f387;引用 3.6.1引用做函数参数 …...

爬虫案例学习6

获取淘宝商品数据2024-12-18 参考学习&#xff1a; 大佬博客 视频教程 通过搜索发现&#xff0c;数据是通过发送请求过来的&#xff0c;不是静态存在源代码的 所以我们需要请求这个接口获取数据&#xff1a;比如标题&#xff0c;价格&#xff0c;图片等信息 https://h5api.m…...

28、论文阅读:基于像素分布重映射和多先验Retinex变分模型的水下图像增强

A Pixel Distribution Remapping and Multi-Prior Retinex Variational Model for Underwater Image Enhancement 摘要介绍相关工作基于模型的水下图像增强方法&#xff1a;无模型水下图像增强方法&#xff1a;基于深度学习的水下图像增强方法&#xff1a; 论文方法概述像素分布…...

[BJDCTF2020]ZJCTF,不过如此 1

[BJDCTF2020]ZJCTF&#xff0c;不过如此 1 打开实例发现代码审计 需要GET传入text和file参数&#xff0c;然后执行文件包含 text需要读取到I have a dream文本&#xff0c;这边采用data流进行绕过 ?textdata://,I have a dream&filenext.php成功绕过&#xff0c;接下来…...

Hive的in与not in 值中有null的时候注意事项,join where条件等问题

在进行hive SQL查询数据的时候&#xff0c;where条件中使用了in或者not in&#xff0c;但是该值内有null空。 这时&#xff0c;无论是in还是not in&#xff0c;空值都不会进入该条件内&#xff0c;但是使用not in的时候只是希望把自己不想要的数据给排除掉&#xff0c;这时会同…...

大语言模型画图(流程图、框架图)

第一步&#xff1a;向随意大语言模型&#xff0c;描述内容&#xff0c;推荐豆包 豆包 加上下面Prompt 通过Mermaid语法&#xff0c;描述上面流程图 第二步&#xff1a;将生成Mermaid输入流程图生成网站 中文Mermaid - 流程图、关系图在线画图、生成和编辑器...

Oracle创建逻辑目录

Oracle 在执行逻辑备份及还原时&#xff0c;需要用到逻辑目录。 本文就来简单介绍一下逻辑目录相关的操作&#xff0c;希望对大家有所帮助。 ‌1.登录到Oracle数据库‌ 使用具有足够权限的数据库用户登录到Oracle数据库。通常&#xff0c;这需要是管理员账号&#xff0c;如SYS…...

[react] 优雅解决typescript动态获取redux仓库的类型问题

store.getState()是可以获取总仓库的 先拿到函数的类型 再用ReturnType<T> 它是 TypeScript 中的一个内置条件类型&#xff0c;用于获取某个函数类型 T 的返回值类型 代码 // 先拿总仓库的函数类型type StatefuncType typeof store.getState;//再拿函数类型T的返回值类…...

python如何获取excel单元格文字是否加粗

是的&#xff0c;Python 可以获取 Excel 单元格中的文字是否加粗。通常&#xff0c;这需要使用 openpyxl 库&#xff0c;它允许你读取和写入 Excel 文件&#xff08;.xlsx 格式&#xff09;。 以下是一个示例代码&#xff0c;展示如何检查某个单元格的文字是否加粗&#xff1a…...

我的性能优化经验

专业方向&#xff1a;App cpu/memory/gpu/流畅度/响应时间的优化&#xff0c;Anr&#xff0c;Framework CarPowerManagementService模块的&#xff08;STR&#xff09;&#xff0c;从0~1完成性能监控体系搭建&#xff0c;完成3大版本迭代高质量性能交付 响应时间&#xff1a; …...

【Vulkan入门】16-IndexBuffer

TOC 先叨叨 上篇介绍了如何使用VertexBuffer传入顶点信息。两个多星期了我们一直在玩三个点&#xff0c;本篇介绍如何渲染更多的点。 在渲染前考虑一个问题&#xff0c;渲染一个三角形需要三个点&#xff0c;渲染两个相接的三角形需要几个点&#xff1f; 答案是6个点&#xf…...

如何通过HTTP API新建Collection

本文介绍如何通过HTTP API创建一个新的Collection。 前提条件 已创建Cluster&#xff1a;创建Cluster。 已获得API-KEY&#xff1a;API-KEY管理。 Method与URL HTTP POST https://{Endpoint}/v1/collections 使用示例 说明 需要使用您的api-key替换示例中的YOUR_API_KEY、…...

excel 使用vlook up找出两列中不同的内容

当使用 VLOOKUP 函数时&#xff0c;您可以将其用于比较两列的内容。假设您要比较 A 列和 B 列的内容&#xff0c;并将结果显示在 C 列&#xff0c;您可以在 C1 单元格中输入以下公式&#xff1a; 这个公式将在 B 列中的每个单元格中查找是否存在于 A 列中。如果在 A 列中找不到…...

实验16 循环神经网络(3)

目录 1.数据处理 1.1.数据集下载 1.2.数据加载 1.2.1读取数据 1.2.2词表转换 1.2.3封装数据 2. 模型构建 2.1汇聚层算子 2.2模型汇总 3. 模型训练 3.1模型训练 3.2绘制准确率和损失函数图像 4. 模型评价 5. 模型预测 6. 基于Torch的单向LSTM 6.1模型修改-只返…...

Docker 清理命令

Docker 清理命令 删除停止的容器&#xff1a;停止的容器仍然会占用磁盘空间&#xff0c;可以使用以下命令删除所有停止的容器&#xff1a; docker container prune删除无用的网络&#xff1a;Docker 创建的网络&#xff0c;如果不再使用&#xff0c;也可以被清理&#xff1a; d…...

游泳溺水识别数据集,对9984张原始图片进行YOLO,COCO JSON, VOC XML 格式的标注,平均识别率在91.7%以上

游泳溺水识别数据集&#xff1a; 对9984张原始图片进行YOLO&#xff0c;COCO JSON, VOC XML 格式的标注&#xff0c;平均识别率在91.7&#xff05;以上 &#xff0c;可识别泳池或者水库中是否有人溺水。 数据集分割 训练组98&#xff05; 9818图片 有效集&#xff05;…...