【JavaEE】网络原理之初识(1.0)
目录
编辑
局域网与广域网
IP地址和端口号
实现简单的服务器客户端交互
简单理解socket
TCP和UDP的差别(初识)
socket面对udp
DatagramSocket API
DatagramSocket 构造方法
DatagramSocket 方法:
DatagramPacket API
DatagramPacket 构造方法:
DatagramPacket 方法:
实现回显服务器和客户端
网络协议
局域网与广域网
随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成业务,就有了网络互连。
网络互连:将多台计算机连接在一起,完成数据共享。
数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信。
根据网络互连的规模不同,可以划分为局域网和广域网
局域网是本地,局部组建的一种私有网络
局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的。
其能通过路由器去使几台电脑去连接在一块,但数量是有限的。
一般家用路由器,常见的是5 个网口:1WAN + 4LAN
要想让这几个电脑能够在同一个局域网中上网,就需要把他们连接到LAN 口,WAN 口是用来连上级的路由器的。
那么能不能让一个路由器连接的电脑更多呢?
有个叫交换机的东西: 可以扩展路由器的端口,我们把路由器的LAN口连在交换机上,交换机上有一定数量的LAN口从而可以连一定数量的电脑,这样就可以扩展电脑的数量。
除此之外还有上级路由器连多个下级路由器,从而更多电脑连接在一块。
那么如果我们在上述设备层层连接之下,就可以构成更复杂的网络结构了,把更多更多的局域网连接到一起,构成的网络更加庞大,可能已经覆盖了一个城市,一个国家,就叫广域网。
对于广域网和局域网的定义没有准确的数量要求。(我们感觉非常多的电脑(10w台这种)连接在一块就是可以称为广域网)
IP地址和端口号
IP地址描述了一个设备,在网络上的地址,
生活中: 吉林省长春市东北师范大学光华xxx
而在计算机中: 使用一个 32 位, 4 字节数字, 表示地址
一般来说,我们会把 IP 地址给表示成 4 个 0-255 之间的十进制数字,并且使用 3个点进行分隔.点分十进制(192.168.2.100)
在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的程序。简单说:端口号用于定位主机中的程序。
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)
格式为:
端口号是0~65535范围的数字(两个字节),在网络通信中,程序可以通过绑定一个端口号,来发送及接收网络数据注意事项:
两个不同的程序,不能绑定同一个端口号,但一个进程可以绑定多个端口号
举个例子:mysql可以绑定一个端口号3306,也可以在绑定其他的端口号,但是其他程序不行绑定3306了。
特殊说明:
1-1023 (0不用作端口号)这个范围的端口号,系统留作特殊用途,咱们写的程序不应该占用
知名端口号,这些留给一些比较常见的服务器程序进行使用的(都是系统必要的)
22 => ssh
80 => http
443 => https
23 => telnet
实现简单的服务器客户端交互
简单理解socket
之前提过在网络编程中,应用层到运输层需要显式调用 API,而运输层到网络层以及后续层的通信通常是自动处理的,不需要开发者主动调用 API,反过来也是同理。
这里显示调用的API就是socket(套接字) ,只有调用了它,数据才能运输成功。
由于传输层提供了两个最核心的协议:UDP TCP。
因此,socket api 中也提供了两种风格来面对UDP和TCP。(传输层用哪种协议就用哪种风格去应对)
对于socket 不仅是个API,本质上是一种特殊的文件.Socket 就属于是把"网卡"这个设备,给抽象成了文件了往 socket 文件中写数据,就相当于通过网卡发送数据.从 socket 文件读数据,就相当于通过网卡接受数据
TCP和UDP的差别(初识)
TCP的特点:
有连接
可靠传输
面向字节流
全双工UDP的特点:
无连接
不可靠传输
面向数据报
全双工
连接:
此处说的"连接"不是物理意义的连接,而是抽象,虚拟的连接。
计算机中,这种 抽象 的连接是很常见的,此处的连接本质上就是建立连接的双方,各自保存对方的信息,两台计算机建立连接,就是双方彼此保存了对方的关键信息(ip和端口)
所以这也意味着如果协议是tcp的话,必须要先建立好连接才能传输信息,如果是udp,就不用建立连接就能传输消息。
可靠传输/ 不可靠传输:
网络上存在的"异常情况"是非常多的,无论使用什么样的软硬件的技术手段无法100%保证网络数据能够从A一定传输到。此处谈到的"可靠传输",尽可能的完成数据传输。虽然无法确保数据到达对方,至少可以知道,当前这个数据对方是不是收到了。
此处谈到的可靠传输,主要指的是发的数据到没到,发送方能够清楚的感知到。
面向字节流/面向数据报
面向字节流:此处谈到的字节流和文件中的字节流完全一致—— TCP(网络中传输数据的基本单位就是字节)
面向数据报:udp每次传输的基本单位是一个数据报(由一系列的字节构成的),它是特定的结构
全双工/半双工:
全双工通信允许数据同时在两个方向上传输。这意味着通信双方可以同时发送和接收数据,而不会互相干扰。
半双工通信允许数据在两个方向上传输,但不能同时进行。通信双方只能交替地发送和接收数据。
socket面对udp
udp时的socket相较于tcp,要相对简单,我们先讲这个
DatagramSocket API
DatagramSocket 是UDP时的Socket,用于发送和接收UDP数据报。
DatagramSocket 构造方法
DatagramSocket 方法:
DatagramPacket API
DatagramPacket是UDP Socket发送和接收的数据报(UDP面向数据报,每次发送接收数据的基本单位,就是一个UDP数据报)
DatagramPacket 构造方法:
由于udp是没建立连接的,所以每次发送都要标明要发送的对方ip和端口。(如果建立了连接就不需要发送ip和端口)
DatagramPacket 方法:
构造UDP发送的数据报时,需要传入 SocketAddress ,该对象可以使用 InetSocketAddress 来创建。
实现回显服务器和客户端
注:这里编写的客户端服务器是一个简单 UDP 版本的服务器,称之为:回显服务器。
一个普通的服务器: 收到请求,根据请求计算响应(业务逻辑),返回响应。
回显服务器: 省略了普通服务器的 “根据请求计算响应”(这里的响应一般非常复杂),这里只是为了演示 socket api 的用法。
这里有一个重点要说下:
对于一个服务器来讲,我们需要让其绑定一个明确的端口号,因为在服务器在网络传输中处于一个被动的状态,没有一个明确的端口号,客户端就无法寻找到请求的服务器。
而对于一个客户端来说,我们可以让其随机分配一个端口号给他,不要指定,因为客户端是客户使用,不像我们程序员知道怎么分配端口,客户不清楚怎么分配端口,万一客户指定的端口被别人占用就会报错,它还不知道怎么修改,所以采用随机分配。(随机分配的都是没被占用的端口号)
以后的服务器客户端 端口号都遵循这规定
服务器端的逻辑如下:
1. 创建套接字:创建一个 DatagramSocket 对象,并绑定到指定的端口(10003),用于接收和发送数据报。
2. 接收数据报:在 while (true) 循环中,创建一个 DatagramPacket 对象,用于接收客户端发送的数据报。调用 datagramSocket.receive(datagramPacket) 方法等待并接收数据报。
3. 处理数据:将接收到的数据报中的字节数组转换为字符串,然后调用 process 方法处理该字符串。在这个例子中,process 方法只是简单地返回传入的字符串本身。
4. 发送响应:将处理后的字符串转换为字节数组,并创建一个新的 DatagramPacket 对象,包含要发送的数据、目标地址和端口(即客户端的地址和端口)。使用 datagramSocket.send(datagramPacket1) 方法将响应数据报发送回客户端。
5. 循环处理:上述步骤在 while (true) 循环中不断重复,服务器持续等待接收新的数据报并响应,直到程序被手动终止。
客户端设计逻辑:
创建套接字:创建一个 DatagramSocket 对象,用于发送和接收数据报。这个套接字没有绑定到特定的端口,因此会使用一个临时端口。
读取用户输入:使用 Scanner 从控制台读取用户输入的字符串。
发送数据报:
将用户输入的字符串转换为字节数组。
创建一个 DatagramPacket 对象,包含要发送的数据、目标地址和端口。
使用 DatagramSocket 发送数据报。
接收响应:
创建一个 DatagramPacket 对象,用于接收服务器的响应。
使用 DatagramSocket 接收数据报。
将接收到的字节数组转换为字符串并打印到控制台。
循环处理:上述步骤在 while (true) 循环中不断重复,直到程序被手动终止。
public class Serve {public static void main(String[] args) throws IOException,InterruptedException {System.out.println("服务器上线");DatagramSocket datagramSocket=new DatagramSocket(10003);while(true){DatagramPacket datagramPacket=new DatagramPacket(new byte[4096],4096);datagramSocket.receive(datagramPacket);String string=new String(datagramPacket.getData(),0,datagramPacket.getLength());byte[] bytes1=process(string.getBytes());DatagramPacket datagramPacket1 = new DatagramPacket(bytes1,bytes1.length,new InetSocketAddress(datagramPacket.getAddress(),datagramPacket.getPort()));datagramSocket.send(datagramPacket1);}}public static String process(String string){return string;}
}
public class Client {public static void main(String[] args) throws IOException {System.out.println("客户端启动");Scanner scanner=new Scanner(System.in);DatagramSocket datagramSocket=new DatagramSocket();while(true){String string=scanner.next();byte[] bytes=string.getBytes();DatagramPacket datagramPacket1 = new DatagramPacket(bytes,bytes.length,new InetSocketAddress("192.168.50.173",10003));datagramSocket.send(datagramPacket1);DatagramPacket datagramPacket=new DatagramPacket(new byte[4096],4096);datagramSocket.receive(datagramPacket);String string1=new String(datagramPacket.getData(),0,datagramPacket.getLength());System.out.println(string1);}}
}
对于这里我们要特殊说几个点:
1.对于字节数组内部存储数据报并不可能是全部都占用了,肯定有空闲空间,所以在将该字节数组变为字符串时我们肯定要把空闲空间给划掉,这时候就用datagrampacket.getlength ()得到有效长度,从而就可以忽略掉,否则会引发bug
2.仔细观察代码,发现该服务器可以同时支持多个客户端
这里有个疑问,一段代码为什么会能实现多个窗口呢?一般不是只能一段代码实现一个?这玩意我们是可以修改的
通过这样修改,我们就能一段代码生成多个实例对象,多个窗口(客户端)。
3.对于该DatagramSocket虽然是文件,但是并不需要close,因为Datagramsocket是全程跟随该进程的,当进程结束时,我们才不会用DatagramSocket,进程只要还在运行,它依然还会用。该进程结束时文件描述表自然就销毁了,根本不用再添一个close。
网络协议
网络协议是网路通信中的规则和标准,它用于定义网络通信中数据的传输方式、数据包的结构、数据包中的信息内容以及通信双方的行为等。只有统一规范好了网络协议(规则),电脑们之间才能通信成功。
本节课的内容就到这里了,剩下的等我下节再讲
相关文章:
【JavaEE】网络原理之初识(1.0)
目录 编辑 局域网与广域网 IP地址和端口号 实现简单的服务器客户端交互 简单理解socket TCP和UDP的差别(初识) socket面对udp DatagramSocket API DatagramSocket 构造方法 DatagramSocket 方法: DatagramPacket API Data…...
Go与Cpp的本质区别
这个问题是我们经常听到的问题 常见的观点有 Go 与 C 的差异主要体现在设计哲学、内存管理、并发模型、语法特性及应用场景等方面,以下从多个维度进行详细对比: 一、内存管理机制 C:需手动管理内存(如 new/delete、智能…...
Vulkan 学习(16)---- 使用 VertexBuffer
Vertex Buffer 创建一个 VertexBuffer 存储 Vertex data,代替之前在 Shader 中使用固定顶点值的做法 Vertex Shader 修改 GLSL 的 VertexShader 如下: 注意这里指定了 input Vertex data 的 location 和 格式 #version 450 layout(location 0) in vec2 inPosit…...
论文阅读 2024 arxiv Comprehensive Assessment of Jailbreak Attacks Against LLMs
总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Comprehensive Assessment of Jailbreak Attacks Against LLMs https://arxiv.org/pdf/2402.05668 https://www.doubao.com/chat/4015423571416834 速览 这篇论文是关于大…...
SIFT特征点检测
刚看完了SIFT特征点检测的原理,阅读的是两篇csdn博客,一个全面和一个最全面,不得不说,你俩写的都很全面,这么用心奉献知识的博主是全人类的财富。 现在用我这张笨拙的嘴先说一下我理解的流程 首先先将图像扩大一倍&a…...
开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验-pipeline方式(二)
一、前言 阿里云最新推出的 Qwen3-8B 大语言模型,作为国内首个集成“快思考”与“慢思考”能力的混合推理模型,凭借其 80 亿参数规模及 128K 超长上下文支持,正在重塑 AI 应用边界。该模型既可通过轻量化“快思考”实现低算力秒级响应,也能在复杂任务中激活深度推理模式,以…...
Python os.path.join()路径拼接异常
问题 在使用os.path.join()对两个路径进行拼接,如:/University/School/和/Department/Class/进行拼接,最终的结果为/Department/Class/,而/University/School/却不知所踪。 import osos.path.join(“/University/School/”, “/…...
Flink之DataStream
Apache Flink 的 DataStream API 是用于 处理无限(流)或有限(批)数据流的核心编程模型,适用于事件驱动、实时分析、ETL 等场景。相比 Flink Table API,DataStream API 提供了更强的灵活性和底层控制能力。 …...
WHAT - Tailwind CSS + Antd = MetisUI组件库
文章目录 Tailwind 和 Antd 组件库MetisUI 组件库 Tailwind 和 Antd 组件库 在 WHAT - Tailwind 样式方案(不写任何自定义样式) 中我们介绍了 Tailwind,至于 Antd 组件库,我们应该都耳熟能详,官网地址:htt…...
【LLM】MOE混合专家大模型综述(重要模块原理)
note 当前的 MoE 架构就是一个用显存换训练时长/推理延迟的架构MoE 目前的架构基本集中在于将原先 GPT 每层的 FFN 复制多份作为 n 个 expert,并增加一个 router,用来计算每个 token 对应到哪个 FFN(一般采用每个 token 固定指派 n 个 exper…...
量子机器学习中的GPU加速实践:基于CUDA Quantum的混合编程模型探索
引言:量子机器学习的新范式 在量子计算与经典机器学习交叉融合的前沿领域,量子机器学习(Quantum Machine Learning, QML)正经历着革命性突破。然而,随着量子比特规模的增长和算法复杂度的提升,传统计算架构…...
CentOS Linux 环境二进制方式安装 MySQL 5.7.32
文章目录 安装依赖包新建用户解压初始化配置文件启动服务登录MySQL修改密码停止数据库 安装依赖包 yum -y install libaio perl perl-devel libncurses* autoconf numactl新建用户 useradd mysql解压 tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.32-l…...
数学:拉马努金如何想出计算圆周率的公式?
拉马努金(Srinivasa Ramanujan)提出的圆周率(π)计算公式,源于他对数学模式的超凡直觉、对无穷级数和模形式的深刻洞察,以及独特的非传统数学思维方式。尽管他的思考过程带有强烈的个人色彩,甚至…...
Java 未来技术栈:从云原生到 AI 融合的企业级技术演进路线
一、云原生架构:重构 Java 应用的运行范式 1.1 微服务架构的深度进化 Java 在微服务领域的实践正从 Spring Cloud 向服务网格(Service Mesh)演进。以 Istio 为代表的服务网格技术,通过 Sidecar 模式实现服务间通信的透明化管理&…...
mid360驱动安装以及联合相机标定
1 mid360 安装 1.1 安装 一定要使用 SDK2和 ROS2驱动(livox_ros_driver2) 先安装SDK2,再安装livox_ros_driver2 GitHub - Livox-SDK/Livox-SDK2: Drivers for receiving LiDAR data and controlling lidar, support Lidar HAP and Mid-360. GitHub - Livox-SDK/l…...
LeetCode —— 572. 另一棵树的子树
572. 另一棵树的子树 题目:给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所…...
模型部署技巧(一)
模型部署技巧(一) 以下内容是参考CUDA与TensorRT模型部署内容第六章,主要针对图像的前/后处理中的trick。 参考: 1.部署分类器-int8-calibration 2. cudnn安装地址 3. 如何查找Tensor版本,与cuda 和 cudnn匹配 4. ti…...
PostgreSQL中的SSL
PGSQL数据库的默认隔离级别是读提交,并且同时支持可重复读和序列化模式。但是在9.1之前的版本中,序列化模式等价于快照隔离,并非是真正的序列化模式。 这样的话就会存在一个问题,那就是写偏序(Write Skew)…...
使用 Spring Data Redis 实现 Redis 数据存储详解
使用 Spring Data Redis 实现 Redis 数据存储详解 Spring Data Redis 是 Spring 生态中操作 Redis 的核心模块,它封装了 Redis 客户端的底层细节(如 Jedis 或 Lettuce),提供了统一的 API 来操作 Redis 的数据结构。以下是详细实现…...
短视频矩阵系统贴牌开发实战:批量剪辑文件夹功能设计与实现
摘要:在短视频矩阵系统的开发中,批量处理功能是提升运营效率的关键。本文将深入探讨如何实现基于文件夹的短视频批量剪辑功能,涵盖技术选型、核心功能实现及代码示例。 一、需求背景与场景价值 在短视频矩阵运营场景中,运营者常面…...
2025年消防设施操作员考试题库及答案
一、判断题 25.防火门顺序器使用半个月后,需检查所有的螺钉,对固定螺钉进行加固拧紧,后续每月进行一次。() 答案:错误 解析:本题考查的是防火门顺序器的保养。防火门顺序器使用一周后&#x…...
ASP.NET MVC后端控制器用模型 接收前端ajax数据为空
1、前端js代码 如下: const formData {DeptName: D001,Phone: 12345678900 };$.ajax({url: "/Phone/SavePhone1",type: "POST",contentType: "application/json",data: JSON.stringify(formData), //必须要JSON.stringifysuccess:…...
ES基本使用方式
ES基本使用 文章目录 ES基本使用1.es的访问使用URL访问 2.mapping的理解Dynamic Mappingkeyword 与 text的区别基础定义与核心差异主字段,子字段 创建mapping 3.创建索引4.查看索引列表5.删除索引6.添加数据7.查询数据 重置es密码,初始用户elastic el…...
【中间件】bthread效率为什么高?
bthread效率为什么更高? 1 基本概念 bthread是brpc中的用户态线程,也是协程的一种实现。其采用M:N模型,即多个用户线程映射到少量的系统线程上。 2 高效做法 用户态调度:避免内核态和用户态之间的切换开销,上下文切…...
Transformer架构指南:从原理到实战资源全更新
🌟 什么是Transformer? 2017年Google提出的Transformer架构,彻底颠覆了传统RNN/LSTM的序列建模方式,通过自注意力机制实现全局上下文建模,成为GPT、BERT等大模型的底层基石。其核心优势在于并行化计算和长距离依赖捕捉…...
数据库规范
数据库版本相关 版本:mysql8.0 引擎:InnoDB 字符集:utf8mb4_general_ci 表名称 字段名称te 不允许使用大写字母,尽量使用英文或英文缩写,中间用下划线连接 数据表前缀为zzt_ 同一功能模块的表(特别是附表)尽量保持…...
Java 核心--泛型枚举
作者:IvanCodes 发布时间:2025年4月30日🤓 专栏:Java教程 各位 CSDN伙伴们,大家好!👋 写了那么多代码,有没有遇到过这样的“惊喜”:满心欢喜地从 ArrayList 里取出数据…...
使用skywalking进行go的接口监控和报警
安装 helm upgrade --install skywalking ./skywalking-v1 --namespace skywalking --create-namespace 查看安装结果 kubectl get pod -n skywalking NAME READY STATUS RESTARTS AGE elasticsearch-6c4ccbf99f-ng6sk 1/1 …...
基于Docker的Elasticsearch ARM64架构镜像构建实践
一、前言 Elasticsearch(以下简称为ES) 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次…...
【Token系列】14|Prompt不是文本,是token结构工程
文章目录 14|Prompt不是文本,是token结构工程一、很多人写的是“自然语言”,模型读的是“token序列”二、Prompt写法会直接影响token结构密度三、token分布影响Attention矩阵的聚焦方式四、token数 ≠ 有效信息量五、Prompt结构设计建议&…...
在宝塔面板中安装OpenJDK-17的三种方法
title: 在宝塔面板中安装OpenJDK-17的三种方法 date: 2025-4-30 categories: 技术教程 tags: [Minecraft, 服务器搭建, 宝塔面板, Java] 如果你的宝塔面板软件商店中缺少 OpenJDK-17(例如搭建 Minecraft 1.17 服务器时),本文提供三种解决方…...
瑞昱点屏芯片RTD2785T带旋转功能
一、产品概述 RTD2785T是瑞昱半导体(Realtek)推出的新一代高性能显示驱动芯片,专为高端显示器、嵌入式系统、工业控制及专业影像设备设计。该芯片集成多接口输入(HDMI、DP、DVI、VGA)与多种输出接口(eDP、…...
蓝桥杯Python(B)省赛回忆
Q:为什么我要写这篇博客? A:在蓝桥杯软件类竞赛(Python B组)的备赛过程中我在网上搜索关于蓝桥杯的资料,感谢你们提供的参赛经历,对我的备赛起到了整体调整的帮助,让我知道如何以更…...
自主采集高质量三维重建数据集指南:面向3DGS与NeRF的图像与视频拍摄技巧【2025最新版!!】
一、✨ 引言 随着三维重建技术的飞速发展,NeRF(Neural Radiance Fields)与 3D Gaussian Splatting(3DGS)等方法成为重建真实场景和物体几何细节的前沿方案。这些方法在大规模场景建模、机器人感知、文物数字化、工业检…...
为Mac用户定制的云服务器Vultr 保姆级教程
以下是专为 Mac 用户 定制的 Vultr 保姆级教程,涵盖从注册、部署服务器到常见问题解决的全流程指南,配合实际案例和故障排查,确保流畅使用。 一、Vultr 基础介绍 1.Vultr 是什么? Vultr 是一家美国云计算服务商,提供…...
广州创科——湖北房县汪家河水库除险加固信息化工程
汪家河水库 汪家河水库位于湖北省房县,建于1971年,其地利可谓是天公之作,东西二山蜿蜒起伏,山峰相连,峰峰比高,无有尽头,东边陡峭,西边相对平坦,半山腰有一条乡村道路&am…...
LeetCode392_判断子序列
LeetCode392_判断子序列 标签:#双指针 #字符串 #动态规划Ⅰ. 题目Ⅱ. 示例 0. 个人方法官方题解一:双指针官方题解二:动态规划 标签:#双指针 #字符串 #动态规划 Ⅰ. 题目 给定字符串 s 和 t ,判断 s 是否为 t 的子序…...
力扣第447场周赛
这次终于赶上力扣的周赛了, 赛时成绩如下(依旧还是三题 ): 1. 统计被覆盖的建筑 给你一个正整数 n,表示一个 n x n 的城市,同时给定一个二维数组 buildings,其中 buildings[i] [x, y] 表示位于坐标 [x, y] 的一个 唯一 建筑。 如…...
kotlin中Triple的作用
在 Kotlin 里,Triple 是标准库提供的一个类,其作用是创建一个包含三个元素的不可变容器。以下是关于它的详细介绍: 基本作用 Triple 类让你能够把三个不同类型的值组合成一个单一对象,方便在函数间传递或者存储这三个相关的值。…...
jmeter读取CSV文件中文乱码的解决方案
原因分析 CSV文件出现中文乱码通常是因为文件编码与JMeter读取编码不一致。常见场景: 文件保存为GBK/GB2312编码,但JMeter以UTF-8读取。文件包含BOM头(如Windows记事本保存的UTF-8),但JMeter未正确处理。脚本读取文…...
Mysql查询异常【Truncated incorrect INTEGER value】
文章目录 异常原因分析1、数据类型不一致2、数据长度超长3、数据格式要正确 处理方案模拟案例创建表数据查询 异常 在执行MySQL的语句时,在控制台报错如下所示。 Data truncation: Truncated incorrect INTEGER value 原因分析 1、数据类型不一致 必须要保证数据…...
vue+django农产品价格预测和推荐可视化系统[带知识图谱]
文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! ✅编号:D010 vue django 前后端分离架构搭建的系统带有推荐算法、价格预测、可视化、知识图谱数据从爬虫获取可以更新到最…...
2025年天梯题解(L1-8 + L2)
L1-112 现代战争 题目 既然是从大到小轰炸,将所有点存储为三元组(value, x, y)。 排序之后, 记录行列被轰炸的编号,进行 k 次挑选即可。 #include <bits/stdc.h> using namespace std;constexpr int MAXN 1000; struct …...
AndroidStudio生成AAR
Android Studio 2024.3 版本。如何生成 AAR 文件呢? 操作步骤 1、菜单栏,找到 Build 2、清除项目 Clean Project 3、构建项目 Assemble Project生成 AAR 路径 在 我们构建 lib 库下面。 build/outputs/aar/ xxxx下面截图为证: 我的…...
Vue3 后台管理系统模板
Vue3 后台管理系统模板 gie仓库地址 一个基于 Vue3 TypeScript Element Plus 的后台管理系统模板,集成了动态路由和权限管理功能。 技术栈 Vue 3.2TypeScript 4.5Vue Router 4Vuex 4Element Plus 2.9AxiosLess 功能特性 🚀 基于 Vue3 最新技术栈开…...
RPG4.设置角色输入
这一篇是进行玩家移动和视角移动的介绍。 1.在玩家内进行移动覆写 virtual void SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) override; 2.创建增强输入资产的变量创建 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category "CharacterD…...
生产模块-备货生产
特点 从狭义的角度来看,备货生产场景主要出现在产品定制化需求低,产品工艺流程稳定可以大批生产,市场行情可预测的企业。为了实现订单快速交付,缩短交货周期,企业往往会结合公司历史订单数据和当前市场情况安排提前生产…...
GRE隧道
1.在锐捷网络设备中,tunnel mode gre ip 和 tunnel mode gre multipoint 是两种不同的 GRE(Generic Routing Encapsulation)隧道模式,主要区别在于连接拓扑和使用场景: 1. tunnel mode gre ip(点到点 GRE …...
ASP.NET MVC 入门与提高指南六
31. 事件驱动架构与 MVC 集成 31.1 事件驱动架构概念 事件驱动架构(Event - Driven Architecture,EDA)是一种软件设计模式,系统中的组件通过发布和订阅事件来进行通信。在这种架构中,当某个事件发生时,相…...
【MongoDB篇】MongoDB的文档操作!
目录 引言第一节:C - Create - 创建文档 (Insert) 👶➕第二节:R - Read - 读取文档 (Query) 📚👀第三节:U - Update - 更新文档 (Update) 🔄✍️第四节:D - Delete - 删除文档 (Dele…...