三层网络 (服务器1 和 服务器2 在不同网段)
服务器1 和 服务器2 在不同网段,并且通过三层交换机实现通信
1. 网络拓扑
假设网络拓扑如下:
-
服务器1:
-
mac0
:IP 地址192.168.1.10/24
,网关192.168.1.1
-
mac1
:IP 地址10.0.1.10/24
,网关10.0.1.1
-
-
服务器2:
-
mac0
:IP 地址192.168.2.10/24
,网关192.168.2.1
-
mac1
:IP 地址10.0.2.10/24
,网关10.0.2.1
-
-
三层交换机:
-
连接服务器1和服务器2,并配置 VLAN 和路由。
-
2. 配置步骤
(1) 配置 VLAN
在三层交换机上创建 VLAN,并将端口划分到对应的 VLAN。
-
创建 VLAN:
vlan 10 name Server1_mac0 exit vlan 20 name Server1_mac1 exit vlan 30 name Server2_mac0 exit vlan 40 name Server2_mac1 exit
-
将端口划分到 VLAN:
-
假设服务器1的
mac0
连接交换机的GigabitEthernet 0/1
,mac1
连接GigabitEthernet 0/2
。 -
服务器2的
mac0
连接交换机的GigabitEthernet 0/3
,mac1
连接GigabitEthernet 0/4
。
interface GigabitEthernet 0/1 switchport mode access switchport access vlan 10 exit interface GigabitEthernet 0/2 switchport mode access switchport access vlan 20 exit interface GigabitEthernet 0/3 switchport mode access switchport access vlan 30 exit interface GigabitEthernet 0/4 switchport mode access switchport access vlan 40 exit
-
(2) 配置 VLAN 接口 IP 地址
在三层交换机上为每个 VLAN 配置 IP 地址,作为对应网段的网关。
-
配置 VLAN 接口 IP:
interface Vlan 10 ip address 192.168.1.1 255.255.255.0 exit interface Vlan 20 ip address 10.0.1.1 255.255.255.0 exit interface Vlan 30 ip address 192.168.2.1 255.255.255.0 exit interface Vlan 40 ip address 10.0.2.1 255.255.255.0 exit
-
启用路由功能:
ip routing
(3) 2台配置静态路由
如果服务器1和服务器2需要通过三层交换机访问其他网络,可以配置静态路由。
-
假设服务器1需要访问
172.16.1.0/24
网络:ip route 172.16.1.0 255.255.255.0 192.168.1.10
-
假设服务器2需要访问
172.16.2.0/24
网络:ip route 172.16.2.0 255.255.255.0 192.168.2.10
(4) 配置服务器1和服务器2的 IP 地址和网关
确保服务器1和服务器2的 IP 地址和网关配置正确。
-
服务器1:
-
mac0
:ip address 192.168.1.10/24 gateway 192.168.1.1
-
mac1
:ip address 10.0.1.10/24 gateway 10.0.1.1
-
-
服务器2:
-
mac0
:ip address 192.168.2.10/24 gateway 192.168.2.1
-
mac1
:ip address 10.0.2.10/24 gateway 10.0.2.1
-
3. 验证配置
(1) 检查 VLAN 配置
运行以下命令检查 VLAN 配置:
show vlan brief
(2) 检查接口 IP 地址
运行以下命令检查 VLAN 接口 IP 地址:
show ip interface brief
(3) 测试连通性
在服务器1和服务器2上测试连通性:
-
从服务器1的
mac0
ping 服务器2的mac0
:ping 192.168.2.10
-
从服务器1的
mac1
ping 服务器2的mac1
:ping 10.0.2.10
4. 注意事项
IP 地址规划:确保服务器1和服务器2的 IP 地址和网关配置正确,且不在同一网段。
路由功能:确保三层交换机的路由功能已启用(ip routing
)。
防火墙规则:如果服务器或交换机启用了防火墙,确保允许相关流量通过。
MTU 设置:如果使用 VLAN 或隧道,确保 MTU 设置正确,避免分片。
例如:
ens0(sw10)---------- (SW13)ens22f0
ip:10.0.1.10/24 gw:10.0.1.1 ip:10.0.2.10/24 gw:10.0.2.1
vlan 3020 ip 10.0.1.1 255.255.255.0 vlan 3021 ip 10.0.2.1/24 255.255.255.0
route add -net 10.0.2.0/24 gw 10.0.1.1 route add -net 10.0.1.0/24 gw 10.0.2.1
ens1(sw12)---------- (SW14)ens22f1
ip:11.0.1.10/24 gw:11.0.1.1 ip:11.0.2.10/24 gw:11.0.2.1
vlan 3030 ip 11.0.1.1/24 255.255.255.0 vlan 3031 ip 11.0.2.1/24 255.255.255.0
route add -net 11.0.2.0/24 gw 11.0.1.1 route add -net 11.0.1.0/24 gw 11.0.2.1
配置文件新增ip示例:
IPADDR1=10.0.1.10 PREFIX1=24 GATEWAY1=10.0.1.1
获取路由
route -n
ip route show
华为交换机配置方法
华为交换机默认支持路由功能,但需要正确配置 VLAN 接口和路由协议才能实现不同网段之间的通信。以下是详细配置步骤:
1. 进入系统视图
首先,登录交换机并进入系统视图:
<Huawei> system-view [Huawei]
2. 创建 VLAN 并配置 VLAN 接口 IP 地址
如果交换机需要路由不同 VLAN 之间的流量,需要先创建 VLAN 并为其配置 IP 地址。
(1) 创建 VLAN
[Huawei] vlan batch 10 20
-
这里创建了 VLAN 10 和 VLAN 20。
(2) 配置 VLAN 接口 IP 地址
[Huawei] interface Vlanif 10 [Huawei-Vlanif10] ip address 192.168.1.1 255.255.255.0 [Huawei-Vlanif10] quit[Huawei] interface Vlanif 20 [Huawei-Vlanif20] ip address 192.168.2.1 255.255.255.0 [Huawei-Vlanif20] quit
-
为 VLAN 10 和 VLAN 20 分别配置 IP 地址,作为对应网段的网关。
3. 配置端口加入 VLAN
将交换机的物理端口划分到对应的 VLAN。
(1) 配置端口为 Access 模式
[Huawei] interface GigabitEthernet 0/1 [Huawei-GigabitEthernet0/1] port link-type access [Huawei-GigabitEthernet0/1] port default vlan 10 [Huawei-GigabitEthernet0/1] quit[Huawei] interface GigabitEthernet 0/2 [Huawei-GigabitEthernet0/2] port link-type access [Huawei-GigabitEthernet0/2] port default vlan 20 [Huawei-GigabitEthernet0/2] quit
-
将
GigabitEthernet 0/1
划分到 VLAN 10,GigabitEthernet 0/2
划分到 VLAN 20。
4. 启用路由功能
华为交换机默认启用路由功能,但需要确保路由功能已开启。可以通过以下命令检查:
[Huawei] display ip routing-table
-
如果路由表为空,可能需要手动启用路由功能:
[Huawei] ip routing
静态路由配置方法
route add -net 10.0.2.0/24 gw 10.0.1.1
是一个 Linux 命令,用于手动添加一条静态路由。以下是该命令的详细解释:
1. 命令组成
-
route add
:表示添加一条路由。 -
-net 10.0.2.0/24
:表示目标网络是10.0.2.0/24
(即 IP 地址范围为10.0.2.0
到10.0.2.255
)。 -
gw 10.0.1.1
:表示下一跳网关地址是10.0.1.1
。
2. 命令的作用
该命令的作用是:告诉系统,所有发送到 10.0.2.0/24
网段的流量,应该通过网关 10.0.1.1
转发。
3. 使用场景
假设网络拓扑如下:
-
当前主机 IP 地址:
10.0.1.10/24
网关:10.0.1.1
目标网络:10.0.2.0/24
当前主机需要访问 10.0.2.0/24
网段,但默认路由无法到达该网段。因此,需要手动添加一条静态路由,指定流量通过 10.0.1.1
转发。
4. 命令执行
运行以下命令添加静态路由:sudo route add -net 10.0.2.0/24 gw 10.0.1.1
5. 验证路由
运行以下命令,检查路由表是否已添加新路由:route -n
输出示例:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.0.1.1 0.0.0.0 UG 100 0 0 eth0 10.0.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 10.0.2.0 10.0.1.1 255.255.255.0 UG 0 0 0 eth0
-
可以看到,目标网络
10.0.2.0/24
的路由已添加,网关为10.0.1.1
。
6. 删除路由
如果需要删除该路由,可以运行以下命令:
sudo route del -net 10.0.2.0/24 gw 10.0.1.1
7. 持久化配置
通过 route add
添加的路由在系统重启后会失效。如果需要持久化配置,可以将路由添加到网络配置文件中。
(1) 使用 /etc/network/interfaces
(Debian/Ubuntu)
编辑 /etc/network/interfaces
文件,添加以下内容:
up route add -net 10.0.2.0/24 gw 10.0.1.1
(2) 使用 /etc/sysconfig/network-scripts/route-<interface>
(CentOS/RHEL)
创建或编辑 /etc/sysconfig/network-scripts/route-eth0
文件,添加以下内容:
10.0.2.0/24 via 10.0.1.1
8. 注意事项
网关可达性:确保网关 10.0.1.1
可以从当前主机访问(例如,通过 ping 10.0.1.1
测试)。
路由冲突:如果路由表中已存在到 10.0.2.0/24
的路由,新路由可能不会生效。
权限:添加路由需要 root 权限,因此需要使用 sudo
。
总结
-
route add -net 10.0.2.0/24 gw 10.0.1.1
用于手动添加一条静态路由,指定到10.0.2.0/24
网段的流量通过10.0.1.1
转发。 -
该命令适用于临时路由配置,持久化配置需要编辑网络配置文件。
相关文章:
三层网络 (服务器1 和 服务器2 在不同网段)
服务器1 和 服务器2 在不同网段,并且通过三层交换机实现通信 1. 网络拓扑 假设网络拓扑如下: 服务器1: mac0:IP 地址 192.168.1.10/24,网关 192.168.1.1 mac1:IP 地址 10.0.1.10/24,网关 10.0…...
23种设计模式-创建型模式-工厂方法
文章目录 简介场景问题1. 直接依赖具体实现2. 违反开闭原则3. 条件分支泛滥4. 代码重复风险 解决根本问题完整类图完整代码说明核心优势代码优化静态配置表动态策略 总结 简介 工厂方法是一种创建型设计模式,它提供了在父类中创建对象的接口,但允许子类…...
el-table单元格编辑,动态增删行,回车/上下左右箭头切换单元格
🤵 作者:coderYYY 🧑 个人简介:前端程序媛,目前主攻web前端,后端辅助,其他技术知识也会偶尔分享🍀欢迎和我一起交流!🚀(评论和私信一般会回!!) 👉 个人专栏推荐:《前端项目教程以及代码》 基于 Element UI 实现表格单元格编辑与键盘导航功能 Element UI …...
基于springboot的新闻推荐系统(045)
摘要 随着信息互联网购物的飞速发展,国内放开了自媒体的政策,一般企业都开始开发属于自己内容分发平台的网站。本文介绍了新闻推荐系统的开发全过程。通过分析企业对于新闻推荐系统的需求,创建了一个计算机管理新闻推荐系统的方案。文章介绍了…...
解决Selenium滑动页面到指定元素,点击失效的问题
White graces:个人主页 🙉专栏推荐:Java入门知识🙉 🐹今日诗词:君失臣兮龙为鱼,权归臣兮鼠变虎🐹 ⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏 ⛳️点赞 ☀️收藏⭐️关注Ǵ…...
医学图像白血病分割数据集labelme格式245张5类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):245 标注数量(json文件个数):245 标注类别数:5 标注类别名称:["basophil Leukemia","Lymphocyte…...
深度学习Python编程:从入门到工程实践
第一章 Python语言概述与生态体系 1.3 Python在工业界的应用场景 # 示例:使用FastAPI构建RESTful接口 from fastapi import FastAPI from pydantic import BaseModelapp = FastAPI()class Item(BaseModel):name: strprice: float@app.post("/items/") async def cr…...
DHCPv6 Stateless Vs Stateful Vs Stateless Stateful
DHCPv6常见配置模式 在 IPv6 网络中,DHCPv6 的 Stateless(无状态)、Stateful(有状态) 和 Stateless + Stateful(混合模式) 是三种常见的配置模式。它们的主要区别在于客户端如何获取 IPv6 地址和其他网络配置信息(如 DNS 服务器)。 Stateless(无状态)模式 Statele…...
Redis Cluster 详解
Redis Cluster 详解 1. 为什么需要 Redis Cluster? Redis 作为一个高性能的内存数据库,在单机模式下可能会遇到以下问题: 单机容量受限:Redis 是基于内存存储的,单机的内存资源有限,单实例的 Redis 只能…...
Spring(8)——MyBatis入门(2)
一、Mybatis的xml配置文件 Mybatis的开发有两种方式: 注解xml 上一篇博客介绍了用注解的方式操作数据库,这一篇介绍通过xml配置文件的方式操作数据库。 1.1 xml配置文件规则 在Mybatis中使用XML映射文件方式开发,需要符合一定的规范&…...
解析DeepSeek的技术内核:混合专家架构如何重塑AI效能
解析DeepSeek的技术内核:混合专家架构如何重塑AI效能 在当今大型语言模型(LLM)竞争激烈的赛道上,中国AI企业DeepSeek凭借其独特的技术路线脱颖而出。其核心优势之一,便是对混合专家(Mixture of Experts&…...
Android在kts中简单使用AIDL
Android在kts中简单使用AIDL AIDL相信做Android都有所了解,跨进程通信会经常使用,这里就不展开讲解原理跨进程通信的方式了,最近项目换成kts的方式,于是把aidl也换成了统一的方式,其中遇到了很多问题,这里…...
【C++】类和对象(匿名对象)
匿名对象 用 类型(实参) 定义出来的对象叫做匿名对象,相比之前我们定义的 类型 对象名(实参) 定义出来叫有名对象匿名对象生命周期只在当前一行,一般临时定义一个对象当前用一下即可,就可以定义匿名对象。 class A { public:A(int a 0):_a…...
Spring boot 3.4 后 SDK 升级,暨 UI API/MCP 计划
PS 写这篇文章后看到 A Deep Dive Into MCP and the Future of AI Tooling | Andreessen HorowitzWe explore what MCP is, how it changes the way AI interacts with tools, what developers are already building, and the challenges that still need solving. https://a1…...
使用Helm安装、 升级、 回滚Kubernetes应用
前言 在我之前做的项目里,我们对Microk8s微服务的更新是通过自制tar包的方式做的, tar包存储了镜像和YAML文件。 每次升级时,我们需要先删除所有的YAML资源,然后重新创建新的资源。 这种方式存在以下问题: 服务中断:…...
Text-to-SQL将自然语言转换为数据库查询语句
有关Text-To-SQL方法,可以查阅我的另一篇文章,Text-to-SQL方法研究 直接与数据库对话-text2sql Text2sql就是把文本转换为sql语言,这段时间公司有这方面的需求,调研了一下市面上text2sql的方法,比如阿里的Chat2DB,麻…...
gin学习
gin学习笔记,不仅包含了基本的增删查改外,还包括参数传递,上传下载,模版、session与中间件等,方便收藏自习可用 文章目录 获得个请求get打印字符串get请求xmlget请求跳转http方法路由可以通过Context的Param方法来获取…...
【HarmonyOS NEXT】关键资产存储开发案例
在 iOS 开发中 Keychain 是一个非常安全的存储系统,用于保存敏感信息,如密码、证书、密钥等。与文件系统不同,Keychain 提供了更高的安全性,因为它对数据进行了加密,并且只有经过授权的应用程序才能访问存储的数据。那…...
高德终端技术总结:高可用架构如何练成?
前言 高德地图作为国民级应用,特别是出行场景的独特性,要确保在线导航高并发和交通安全级的超稳定性,这对技术团队提出异乎寻常的高要求,无论是终端、云端,还是“终端-云端”之间的连接,都必须实现“高可用…...
STM32八股【3】------RAM和片上FLASH
1、RAM和FLASH构成 1.RAM ┌──────────────────────────┐ │ 栈区 (Stack) │ ← 从RAM顶端向下扩展(存储局部变量、函数调用信息) │--------------------------│ │ 堆区 (Heap) │ ← …...
Apache Doris
Apache Doris介绍 Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场…...
Debezium介绍
1.什么是Debezium Debezium 是一个开源的分布式平台,用于捕获数据库的变更事件(CDC,Change Data Capture)。它能够实时捕获数据库中的行级更改,并将这些更改作为事件流发送到消息中间件(如 Apache Kafka&a…...
奇迹科技:蓝牙网关赋能少儿篮球教育的创新融合案例研究
一、引言 本文研究了福建奇迹运动体育科技有限公司(简称‘奇迹科技’)如何利用其创新产品体系和桂花网蓝牙网关M1500,与少儿篮球教育实现深度融合。重点分析其在提升教学效果、保障训练安全、优化个性化教学等方面的实践与成效,为…...
Python散点图(Scatter Plot):高阶分析、散点图矩阵、三维散点图及综合应用
散点图:数据分析的利器 在数据分析领域,散点图是一种直观且强大的可视化工具,广泛应用于揭示变量间的相关性以及识别数据集中的异常值。本文将深入探讨散点图的这两种关键功能,并结合实际案例与Python代码示例,带您全面了解散点图的应用。 一、散点图如何展示变量间的相…...
计算机网络层超全解析:从IP协议到路由算法
🌐 (专业详解生活化类比,逻辑一镜到底) 📖 网络层的核心使命 核心任务:在不同网络间为数据包选择最佳路径,实现端到端通信。 类比:快递公司总部(网络层)根据…...
RoboVQA
RoboVQA:面向机器人技术的多模态长时推理 摘要 我们提出了一种可扩展、自下而上且具有内在多样性的数据收集方案,适用于中长时高级推理任务,其吞吐量比传统的自上而下分步收集方法高2.2倍。通过在3栋办公楼内使用多种实体(机器人、人类、使用抓取工具的人类)执行任意用…...
javascript语法入门
一、变量声明 在JavaScript中,可以使用var、let和const来声明变量。 javascript var name "张三"; let age 20; 二、数据类型 JavaScript中有7种基本数据类型:undefined、null、boolean、string、symbol、number,以及object。…...
前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” !!!
🚀 前端字段名和后端不一致?解锁 JSON 映射的“隐藏规则” 🌟 嘿,技术冒险家们!👋 今天我们要聊一个开发中常见的“坑”:前端传来的 JSON 参数字段名和后端对象字段名不一致,会发生…...
Java——ArrayList集合
ArrayList:基于动态数组实现,支持随机访问,适合频繁的随机访问操作,但在插入和删除元素时性能较差。 技术层面介绍 所属类库:ArrayList 位于 java.util 包中,它实现了 List 接口,因此具备 Lis…...
基于python+django的图书借阅网站-图书借阅管理系统源码+运行步骤
该系统是基于pythondjango开发的在线图书借阅管理系统。系统适合场景:大学生、课程作业、系统设计、毕业设计。 演示地址 前台地址: http://book.gitapp.cn 后台地址:http://book.gitapp.cn/#/admin 后台管理帐号: 用户名&…...
Flutter运行错误:UG! exception in phase ‘semantic analysis‘
最近在Mac Mini M4上通过Android Studio导入Flutter项目并运行,结果一直跑不起来,错误日志如下: 执行命令查看版本信息: flutter doctor --verbose通过输出信息Java version OpenJDK Runtime Environment (build 21.0.41242208…...
Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制
Python-docx库详解:轻松实现Word文档自动化生成与图片尺寸控制 在现代办公自动化的浪潮中,文档处理是一项不可或缺的任务。Python作为一种强大的编程语言,提供了丰富的库来简化这些任务。其中,python-docx库是处理Word文档的有力…...
【NLP 42、实践 ⑪ 用Bert模型结构实现自回归语言模型的训练】
目录 数据文件 一、模型定义 1.模型初始化 代码运行流程 2.前向传播,计算损失 ⭐ 代码运行流程 二、加载语料 代码运行流程 三、 随机生成样本 代码运行流程 四、建立模型 五、采样策略选择 代码运行流程 六、模型效果测试 代码运行流程 七、模型训练 代码运行流程 …...
HTTPS
目录 一 HTTPS是什么 二 加密 三 加密方案 四 CA机构/证书 五 最终方案(对称密钥/非对称密钥/CA证书)和总体流程 一 HTTPS是什么 在应用层存在SSL,TLS(HTTP之下,传输层之上)加密/解密安全协议,如果HTTP经过这个协议,对端也走…...
electron框架(4.0)electron-builde和electron Forge的打包方式
----使用electron-builder打包(需要魔法) --安装electron-builder: npm install electron-builder -D--package.json中进行相关配置: {"name": "video-tools","version": "1.0.0","main&quo…...
SaaS系统的销售微服务与权限微服务边界设计
在设计SaaS系统的销售微服务与权限微服务的边界时,需要结合领域驱动设计(DDD)和微服务拆分原则,确保高内聚、低耦合。以下是结合微服务架构原则、多租户SaaS需求及权限管理场景的完整设计方案,整合了权限服务与销售服务…...
Unity-AI-Deepseek生成的生成模型代码
结果 能用,不是很理想,从左到右,分别是body,眼睛,演睫毛,手指套(如果你知道这是什么)结果不是很理想 (下面代码已包含,修复的切线只能传Vector3参数,Unity2022测试) 你们帮我看看…...
Django REST Framework 请求封装源码解析与实现流程
版本说明: Django: V4.2.20 Django Rest Framework: V3.15.2 一、核心封装流程示意图 #mermaid-svg-qXJLIa9Bx1TCiPSN {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qXJLIa9Bx1TCiPSN .error-icon{fill…...
简介PyCDE:Python CIRCT Design Entry
简介PyCDE:Python CIRCT Design Entry 引言 在硬件设计和验证领域,随着设计复杂性的增加,传统的方法往往难以满足现代设计的需求。PyCDE(Python CIRCT Design Entry)作为CIRCT项目的一部分,旨在为硬件设计…...
Python实现deepseek接口的调用
简介:DeepSeek 是一个强大的大语言模型,提供 API 接口供开发者调用。在 Python 中,可以使用 requests 或 httpx 库向 DeepSeek API 发送请求,实现文本生成、代码补全,知识问答等功能。本文将介绍如何在 Python 中调用 …...
考研课程安排(自用)
文章目录 408数据结构(王道)计算机组成原理(王道)操作系统(王道)计算机网络(湖科大版) 数学一高等数学(微积分)线性代数和概率论 408 数据结构(王…...
Mybatis操作数据库(注解+xml两个方式)
文章目录 1.个人回顾2.关于mybatis注解的说明3.字段和属性不匹配的解决方案3.1第一个方案3.2第二个方案3.3第三个方案 4.xml路径配置5.xml里面的字段映射 1.个人回顾 刚刚翻看了一下自己的这个之前写的博客,上一次和这个javaee相关的博客还是去年写的,也…...
文心快码 使用体验与介绍
一、文心快码的核心作用 文心快码是百度基于文心大模型开发的智能代码助手,核心价值包括: 代码生成与补全 通用开发:根据注释生成HTML/CSS/JS、Python、Java等代码C专项:生成类定义、STL容器操作、智能指针代码(如st…...
区块链交易
文章目录 交易准备合约和代码逻辑合约compile.jsindex.js 运行 交易 项目来自https://github.com/Dapp-Learning-DAO/Dapp-Learning/blob/main/basic/02-web3js-transaction/README-cn.md 本项目包含对交易进行签名,发送,接收交易回执,验证…...
LeetCode 160 Intersection Of Two Linked Lists 相交链表 Java
题目:找到两个相交列表的起始点,如图c1开始为A和B两个链表的相交点 举例1:8为两个链表的相交点。 注意:相交不止是数值上的相同。 举例2:2为相交点 举例3:没有相交点 解题思路: 相交证明最后一…...
体育直播模板nba英超直播欧洲杯直播模板手机自适应
源码名称:体育直播模板nba英超直播欧洲杯直播模板手机自适应帝国cms 7.5模板 开发环境:帝国cms7.5 空间支持:phpmysql 带软件采集,可以挂着自动采集发布,无需人工操作! 模板特点: 程序伪静态…...
Android Compose 图标按钮深度剖析:从源码到实践(五)
Android Compose 图标按钮深度剖析:从源码到实践 一、引言 在现代 Android 应用开发中,用户界面的交互性和美观性至关重要。图标按钮作为一种常见的 UI 元素,以其简洁直观的特点,在提升用户体验方面发挥着重要作用。Android Com…...
【Dive Into Stable Diffusion v3.5】2:Stable Diffusion v3.5原理介绍
【Dive Into Stable Diffusion v3.5】系列博文: 第1篇:开源项目正式发布——深入探索SDv3.5模型全参/LoRA/RLHF训练第2篇:Stable Diffusion v3.5原理介绍 目录 1 前言1.1 扩散模型的原理1.2 损失函数1.3 加噪流程1.4 推理流程1.5 negative pr…...
WPF 布局舍入(WPF 边框模糊 或 像素错位 的问题)
1. 什么是 WPF 布局舍入? 在 WPF 开发过程中,可能会遇到界面模糊、边框错位、文本渲染不清晰等问题。这些现象通常是由于 WPF 采用 设备无关像素(DIP, Device Independent Pixels),在不同 DPI 设置下,UI 元…...
前端-选中pdf中的文字并使用,显示一个悬浮的翻译按钮(本地pdfjs+iframe)不适用textlayer
使用pdfjs移步– vue2使用pdfjs-dist实现pdf预览(iframe形式,不修改pdfjs原来的ui和控件,dom层可以用display去掉一部分组件) 方案1:获取选择文本内容的最前面的字符坐标的位置(这种写法会导致如果选择超出…...