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

Doip功能寻址走UDP协议

目前使用 connect()函数的UDP客户端 ,这里接收数据 解析的地方 查看一下。
如果使用 bind()、sendto()、recvfrom() 组合 那么返回值 和发送要在做调整,,根据业务需要后续在调整

其余的 和原来的 逻辑都是一样的,只是协议变了而已。

        if server_socket is None:server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 连接到服务器server_socket.connect((host, port))return_message = send_tcp_route(server_socket)

UDP绑定函数的使用
在UDP通信中,bind()函数用于将套接字绑定到指定的IP地址和端口号。这对于服务器端是必要的,因为它允许服务器监听来自客户端的数据。对于客户端,虽然不是必须的,但在某
些情况下使用bind()可以为客户端套接字指定一个固定的端口号。

客户端使用bind()函数
客户端在创建套接字后,通常会使用sendto()函数向服务器发送数据,此时操作系统会为该套接字随机分配一个端口。但是,如果客户端需要接收服务器的数据,或者服务器需要知道客户端的确切端口号以发送数据,那么客户端就需要使用bind()函数来绑定一个特定的端口号。例如:

import socket
创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

绑定到特定的地址和端口
client_socket.bind((‘localhost’, 9693))
发送数据
client_socket.sendto(b’Hello, server!', (‘192.168.1.166’, 80))
接收数据
data, server = client_socket.recvfrom(4096)

虽然UDP是无连接的协议,客户端可以选择使用connect()函数来指定目的地址和端口号。这样做的好处是,之后客户端可以使用send()函数来发送数据,而不需要在每次发送时都指
定目的地址。这也使得套接字知道目的地址和端口号,从而可以接收来自特定服务器的数据。例如:
import socket
创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
使用connect()指定服务器地址和端口
client_socket.connect((‘192.168.1.166’, 80))
发送数据
client_socket.send(b’Hello, server!')
接收数据
data = client_socket.recv(4096)

使用connect()函数的UDP客户端套接字称为已连接的UDP套接字。与未连接的UDP套接字相比,已连接的UDP套接字在发送数据时不需要重复执行连接和断开连接的步骤,因此在发送多个数据包到同一地址时更高效。但是,已连接的UDP套接字只能与一个特定的服务器地址交换数据,这可能限制了其使用场景。
在实际应用中,如果客户端需要与多个服务器通信,使用未连接的UDP套接字可能更合适。
如果客户端在一定时间内需要向同一个地址发送大量数据,使用已连接的UDP套接字可能更高效。

相关文章:

Doip功能寻址走UDP协议

目前使用 connect()函数的UDP客户端 ,这里接收数据 解析的地方 查看一下。 如果使用 bind()、sendto()、recvfrom() 组合 那么返回值 和发送要在做调整,,根据业务需要后续在调整 其余的 和原来的 逻辑都是一样的,只是协议变了而已。 if serv…...

硬件电路设计之51单片机(2)

声明:绘制原理图和PCB的软件为嘉立创EDA。根据B站尚硅谷嵌入式之原理图&PCB设计教程学习所作个人用笔记。 目录 一、原理图详解 1、TypeC接口 (1)TypeC接口介绍 (2)TypeC原理图 2、5V转3.3V 3、单片机电源开…...

Deeplizard 深度学习课程(一)—— Pytorch 和 Tensor 简介

前言 该pytorch笔记参考deeplizard官方网站课程,有相应视频和博客,链接如下: deeplizardhttps://deeplizard.com/learn/video/v5cngxo4mIg 1.Pytorch 简介 PyTorch 是一个深度学习框架和一个科学计算包。PyTorch 的科学计算方面主要是 PyTo…...

Delphi HMAC算法

1. 前言 今天做一个三方接口,接口文档描述签名采用MD5,但是实际测试过程中,始终校验不通过,经过和三方沟通,才知道采用的是HMAC-MD5。由于Delphi7没有对HMAC的支持,则采用XE版本来支持。本次使用Delphi XE …...

Ubuntu服务器性能调优指南:从基础工具到系统稳定性提升

一、性能监控工具的三维应用 1.1 监控矩阵构建 通过组合工具搭建立体监控体系: # 实时进程监控 htop --sort-keyPERCENT_CPU# 存储性能采集 iostat -dx 2# 内存分析组合拳 vmstat -SM 1 | awk NR>2 {print "Active:"$5"MB Swpd:"$3"…...

深度解析C++开源OCR引擎:架构、编译优化与工业级部署指南

1. 引言:OCR技术演进与现状分析 光学字符识别(OCR)技术经历了从传统模式识别到深度学习的三代发展: 第一代:基于模板匹配(1970s-1990s) 第二代:特征提取+分类器(1990s-2010s) 第三代:端到端深度学习(2010s-至今) 当前工业界主流方案呈现"双轨制"发展态势…...

关于Newtonsoft.Json

历史 Newtonsoft.Json(也称为 Json.NET)是由 James Newton - King 开发的一个开源的 JSON 处理库,它于 2007 年首次发布。在早期,.NET 平台缺乏一个强大且灵活的 JSON 处理工具,Newtonsoft.Json 应运而生,…...

Spark-Sql编程(三)

一、数据加载与保存 通用方式:使用spark.read.load和df.write.save,通过format指定数据格式(如csv、jdbc、json等),option设置特定参数(jdbc格式下的url、user等),load和save指定路…...

CTF--好像需要管理员

一、原网页: 二、步骤: 1.扫描: 发现:robots.txt 2.打开robots.txt: 3.打开resul.php: 4.代码解析: if ($_GET[x]$password) //检查通过 URL 参数 x 传递的值是否等于变量 $password 的值 详…...

耀圣控制设备有限公司总经理李雨蔓的创业之路

破浪者李雨蔓:从零到行业标杆的铿锵之路 在浙江永嘉这片被誉为“中国泵阀之乡”的热土上,一位86年出生的女性企业家,用十年光阴书写了一段白手起家的传奇。她,是一曲关于勇气、智慧与匠心的赞歌。从技术员到行业标杆的缔造者&…...

Spring Boot JPA 开发之Not an entity血案

项目状况介绍 项目环境 JDK 21Spring Boot 3.4.3Hibernate: 6.6.13.Final项目描述 因为是微服务架构,项目层级如下 project-parent project-com project-A … project-X 其中: project-parent定义依赖库的版本project-com 定义了一些公用的方法和配置,包括持久层的配置。…...

什么是车规级MCU?STM32也能上车规级场景?

一、车规级MCU的定义 车规级MCU(Microcontroller Unit)是专为汽车电子系统设计的微控制器芯片,集成CPU、存储器、外设接口等功能模块,用于实现车辆控制、数据处理和实时响应。其核心特点包括: 高可靠性:需在…...

vue3.2 + element-plus 实现跟随input输入框的弹框,弹框里可以分组或tab形式显示选项

效果 基础用法&#xff08;分组选项&#xff09; 高级用法&#xff08;带Tab栏&#xff09; <!-- 弹窗跟随通用组件 SmartSelector.vue --> <template><div class"smart-selector-container"><el-popover :visible"visible" :w…...

go 指针接收者和值接收者的区别

go 指针接收者和值接收者的区别 指针接收者和值接收者的区别主要有两点&#xff1a; Go 中函数传参是传值&#xff0c;因此指针接收者传递的是接收者的指针拷贝&#xff0c;值接收者传递的是接收者的拷贝---在方法中指针接收者的变量会被修改&#xff0c;而值接收者的成员变量…...

部署qwen2.5-VL-7B

简单串行执行 from transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor from qwen_vl_utils import process_vision_info import torch, time, threadingdef llm(model_path,promptNone,imageNone,videoNone,imagesNone,videosNone,max_new_tokens2048,t…...

Go:测试

go test 工具 go test是 Go 语言包的测试驱动程序 &#xff0c;包依据特定约定组织 。包目录中以_test.go结尾的文件是go test编译对象&#xff0c;而非go build的编译目标 。 特殊测试函数 在*_test.go文件中有三种特殊函数 &#xff1a; 功能测试函数&#xff1a;以Test为…...

用微信小程序制作一个性行为同意协议系统

用微信小程序制作一个性行为同意协议系统 用微信小程序制作一个性行为同意协议系统&#xff0c;具备查询、修改、增加和演示的Web功能。首先&#xff0c;我需要明确这个系统的核心功能和法律合规性。性同意是一个敏感且法律相关的话题&#xff0c;必须确保系统的设计符合法律法…...

leetcode 122. Best Time to Buy and Sell Stock II

题目描述 这道题可以用贪心思想解决。 本文介绍用动态规划解决。本题分析方法与第121题一样&#xff0c;详见leetcode 121. Best Time to Buy and Sell Stock 只有一点区别。第121题全程只能买入1次&#xff0c;因此如果第i天买入股票&#xff0c;买之前的金额肯定是初始金额…...

FairyGUI图标文字合批失败的原因

1&#xff09;FairyGUI图标文字合批失败的原因 2&#xff09;为什么Cubemap的内存占用超高 3&#xff09;如何找到网格某个切面的中心点 4&#xff09;为什么SafeZone在倒屏后方向相反 这是第428篇UWA技术知识分享的推送&#xff0c;精选了UWA社区的热门话题&#xff0c;涵盖了…...

C/C++ 通用代码模板

✅ C 语言代码模板&#xff08;main.c&#xff09; 适用于基础项目、算法竞赛或刷题&#xff1a; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include <math.h>// 宏定义区 #define MAX_N 1000 #defi…...

void MainWindow::on_btnOutput_clicked()为什么我在QT里面没有connect,也能触发点击效果

在 Qt 中&#xff0c;即使你没有显式调用 connect 函数&#xff0c;某些信号&#xff08;如按钮的 clicked() 信号&#xff09;仍然可以触发槽函数。这是因为 Qt 提供了一种自动连接机制&#xff0c;称为 自动连接&#xff08;Auto-Connection&#xff09;。以下是可能的原因和…...

基于YOLO11的车牌识别分析系统

【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】系统数据统计与可视化分析支持 【技术栈】 ①&#xff1a;系统环境&#xff1a;Windows/macOS/Linux ②&#xff1a;开发环境&#xff1a;Python 3.8 ③&#xff1a;技术栈&#x…...

openwebui搭建mcp

1、升级ollama https://github.com/ollama/ollama/blob/main/docs/faq.md curl -fsSL https://ollama.com/install.sh | shOllama 启动后&#xff0c;设置外网访问_ollama 外部访问-CSDN博客 ubuntu安装deepseek-CSDN博客 sudo vim /etc/systemd/system/ollama.serviceEnvi…...

邀请函 | 知从科技邀您共赴2025上海车展

2025上海车展将于4月23日至5月2日在国家会展中心&#xff08;上海&#xff09;盛大举行。本届车展以 “科技智驾未来”为主题&#xff0c;共同展示新能源汽车、智能驾驶等领域的最新技术与成果。 知从科技将携行业领先的软件产品与技术服务亮相于本次展览会&#xff0c;全方位…...

ESP32开发工具链选择指南:ESP-IDF vs PlatformIO vs Arduino

1. 引言 ESP32作为乐鑫&#xff08;Espressif&#xff09;推出的一款高性能Wi-Fi & Bluetooth双模芯片&#xff0c;凭借其强大的性能和丰富的生态&#xff0c;在物联网&#xff08;IoT&#xff09;领域广受欢迎。然而&#xff0c;开发ESP32时面临的一个关键问题是&#xf…...

【JAVA】bat文件启动jar场景获取bat文件路径的方法

一、推荐方案&#xff1a;参数传递法 步骤1&#xff1a;修改BAT脚本 echo off java -jar -Dbat.file"%~f0" your-app.jar %*关键参数说明&#xff1a; %~f0&#xff1a;获取BAT文件的完整路径%*&#xff1a;传递所有原始参数 步骤2&#xff1a;Java代码获取参数 …...

OpenLayers:extent与view extent 介绍

一、范围的概念 1.什么是范围&#xff1f; 在Openlayers中范围&#xff08;Extent&#xff09;是用于表示地理空间区域的一种概念。它通常由一个数字数组构成&#xff0c;数组中的内容为&#xff1a;[最小x坐标&#xff0c;最小y坐标&#xff0c;最大x坐标&#xff0c;最大y坐…...

Python开发一个简单的软件系统

用Python语言实现&#xff0c;具备录入学生成绩、查询成绩和显示所有成绩等基本功能。以下是代码&#xff1a; # 用于存储学生成绩的字典&#xff0c;键是学生姓名&#xff0c;值是成绩 student_scores {} # 录入学生成绩的函数 def input_scores(): name input("…...

小草GrassRouter多5G聚合路由设备在应急公安消防行业的解决方案及重要作用

小草GrassRouter多5G聚合路由设备在应急、公安、消防等行业的解决方案及重要作用主要体现在以下几个方面&#xff0c;这些领域对通信的高可靠性、高带宽、低时延需求尤为突出&#xff0c;尤其在复杂环境或突发事件中需要保障指挥调度的实时性和稳定性&#xff1a; ** 一、行业…...

冒泡排序、插入排序、快速排序、堆排序、希尔排序、归并排序

目录 冒泡排序插入排序快速排序(未优化版本)快速排序(优化版本)堆排序希尔排序归并排序各排序时间消耗对比 冒泡排序 冒泡排序核心逻辑就是对数组从第一个位置开始进行遍历&#xff0c;如果发现该元素比下一个元素大&#xff0c;则交换位置&#xff0c;如果不大&#xff0c;就…...

JVM知识

JVM 内存模型 JVM的内存模型介绍一下 根据 JVM8 规范&#xff0c;JVM 运行时内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 JVM的内存结构主要分为以下几个部分&#xff1a; 方法区&#xff1a;存放类对象 Java 虚拟机栈&#xff1a;存放方法之间的调…...

Docker 中多个容器之间的通信

在 Docker 中&#xff0c;多个容器之间的通信可以通过以下几种主要方式实现&#xff0c;具体选择取决于网络需求、隔离性及管理复杂度&#xff1a; 一、自定义 Bridge 网络&#xff08;推荐&#xff09; 通过创建自定义的 Docker 网络&#xff0c;容器可以加入同一网络并通过容…...

docker desktop for windows 登录国内镜像仓库

在使用 Docker Desktop for Windows 时&#xff0c;如果你希望连接到国内的 Docker 镜像仓库&#xff08;例如阿里云、腾讯云等&#xff09;&#xff0c;你可以通过配置 Docker 镜像加速器来实现。以下是一些步骤和示例&#xff0c;帮助你设置 Docker Desktop for Windows 以使…...

【blender小技巧】使用blender的Cats Blender Plugin插件将3D人物模型快速绑定或者修复为标准的人形骨骼

文章目录 前言绑定或者修复人形骨骼1、下载模型2、导入模型到blender中3、删除无用的相机和灯光3、导出模型并在unity中使用 专栏推荐完结 前言 有时候我们下载的3D人物模型&#xff0c;可能不带骨骼信息&#xff0c;或者带一些错乱的骨骼信息。这时候我们就可以使用blender将…...

视频压缩技术学习(不高明版本)

1. 压缩的本质与核心目标​​ 视频压缩的核心在于​​去除冗余信息​​&#xff0c;包括空间冗余&#xff08;相邻像素相关性&#xff09;、时间冗余&#xff08;连续帧相似性&#xff09;以及视觉冗余&#xff08;人眼感知特性&#xff09;。通过算法优化&#xff0c;在保持可…...

在Vue项目中查询所有版本号为 1.1.9 的依赖包名 的具体方法,支持 npm/yarn/pnpm 等主流工具

以下是 在Vue项目中查询所有版本号为 1.1.9 的依赖包名 的具体方法&#xff0c;支持 npm/yarn/pnpm 等主流工具&#xff1a; 一、使用 npm 1. 直接过滤依赖树 npm ls --depth0 | grep "1.1.9"说明&#xff1a; npm ls --depth0&#xff1a;仅显示直接依赖&#xf…...

【Web前端技术】第一节—HTML简介

做出一个属于自己的网站&#xff01; 云边有个稻草人-个人主页 为你&#xff0c;千千万万遍 ——哈桑 目录 一、网页 1.什么是网页&#xff1f; 2. 什么是 HTML&#xff1f; 3. 网页的形成 二、常用浏览器 1. 常用浏览器 2. 浏览器内核 三、Web标准&#xff08;重点&…...

LINUX 416 路由转发1

那干脆先配置一下 boot目录必然是标准分区 配路由转发实验 路由器 计划新建3个虚拟机&#xff0c;分别是主机、节点a、节点b&#xff0c;都时间仅主机模式 路由器网卡IP: 节点a路由表 这次装载了附件&#xff0c;桌面安装模式&#xff0c;不用像 最小化安装模式那样折…...

【音视频开发】第四章 SDL音视频渲染

【音视频开发】第四章 SDL音视频渲染 文章目录 【音视频开发】第四章 SDL音视频渲染一、简介1.什么是 SDL 二、Windows 环境搭建三、SDL 子系统四、Window 显示1.SDL 视频显示函数简介2.窗口渲染结构体 五、SDL 事件1.通用事件结构体 SDL_Event2.事件类型 六、SDL 线程1.常用线…...

音频基础概念

声音 物体在一定的振动频率下产生了声音。声音可以被分解为不同频率不同强度正弦波的叠加。 声音三要素 声调 音调: 由发声体振动的频率决定&#xff0c;频率越高&#xff08;振动越快&#xff09;则音调越高&#xff0c;听起来就越“刺耳”&#xff0c;反之音调越低、听起…...

rust编程学习(二):复合数据类型

复合数据类型是由其他类型组合而成的类型。Rust的复合数据类型有元组、数组、结构体、枚举等&#xff0c; 通过一些简单的例子帮助大家快速了解Rust复合类型。 1 元组类型 元组类型是由一个或多个类型的元素组合成的复合类型&#xff0c;使用小括号“()”把所有元素放在一起。…...

学习笔记十四——一文看懂 Rust 迭代器

&#x1f300; 一文看懂 Rust 迭代器 &#x1f4da; 目录导航 什么是迭代器&#xff1f;为什么 Rust 到处都在用它&#xff1f;Rust 迭代器的底层逻辑是什么&#xff1f;适配器 vs 消费者&#xff1a;谁是主角&#xff1f;常见适配器&#xff1a;加工数据的全能工厂常见消费者…...

H.265硬件视频编码器xk265代码阅读 - 帧内预测

源代码地址&#xff1a; https://github.com/openasic-org/xk265 帧内预测具体逻辑包含在代码xk265\rtl\rec\rec_intra\intra_pred.v 文件中。 module intra_pred() 看起来是每次计算某个4x4块的预测像素值。 以下代码用来算每个pred_angle的具体数值&#xff0c;每个mode_i对应…...

贪心算法学习C++

1&#xff0c;跳跃游戏II 题目连接&#xff1a;45. 跳跃游戏 II - 力扣&#xff08;LeetCode&#xff09; 【题目描述】 在给定的一个nums数组中&#xff0c;nums[i]表示从当前i位置最多可以向后跳跃nums[i]个位置。问跳跃到最后 数组最后一个元素的最少跳跃次数&#xff1f;…...

Go 语言实现的简单 CMS Web

Go 语言实现的简单 CMS Web 以下是一个使用 Go 语言实现的简单 CMS Web 演示代码示例&#xff0c; 包含基本的内容管理功能&#xff1a; 项目结构 ### 项目结构 cms-demo/ ├── main.go ├── handlers/ ├── models/ ├── views/ │ ├── home.html │ ├─…...

Zookeeper选举机制

一、选举机制的核心原理 ZooKeeper的选举机制基于ZAB协议&#xff08;ZooKeeper Atomic Broadcast&#xff09;&#xff0c;这是一种为分布式系统设计的原子广播协议。其核心目标是快速选举出Leader节点&#xff0c;并确保数据一致性。以下为关键原理&#xff1a; 1. 选举触发…...

安卓自定义build的apk文件名

android studio打包应用默认生成的apk名称是&#xff1a;app-release.apk 。 如果我们想修改生成的apk文件名&#xff0c;比如想放入版本号&#xff0c;比如想放入渠道号&#xff0c;又比如和打包时间有关联&#xff0c;那我们就需要能自动化生成可自定义的apk文件名&#xff…...

【Web APIs】JavaScript 操作多个元素 ④ ( 表格全选复选框案例 )

文章目录 一、核心要点解析 - 表格全选复选框案例1、案例需求2、复选框设置3、获取 全选复选框 和 普通复选框4、设置 全选复选框 逻辑5、设置 普通复选框 逻辑 二、完整代码示例1、代码示例2、执行结果 一、核心要点解析 - 表格全选复选框案例 1、案例需求 在表格中 , 设置 多…...

Lua 第6部分 函数

在 Lua 语言中&#xff0c;函数&#xff08; Function &#xff09;是对语句和表达式进行抽象的主要方式。 函数既可以用 于完成某种特定任务&#xff08;有时在其他语言中也称为过程 &#xff08; procedure &#xff09;或子例程 &#xff08; s ubroutine) ), 也可以只是进行…...

OpenCv高阶(五)——SIFT特征提取

目录 SIFT特征提取 一、原理核心步骤 1. 尺度空间极值检测 2. 关键点定位 3. 方向分配 4. 描述子生成 二、SIFT算法具有的特点 三、SIFT特征提取器的简单使用 1、特征检测器的创建 2、 检测图像中的关键点 3、绘制关键点 4、计算关键点描述符 四、SIFT 算法的优缺点…...