计算机网络 —— 应用层(电子邮件)
计算机网络 —— 应用层(电子邮件)
- 电子邮件
- 发送电子邮件的过程
- SMTP
- 特性
- 工作流程
- 电子邮件格式
- MIME
- 关键组件
- 工作方式
- POP/IMAP
- POP(邮局协议)
- IMAP(因特网邮件访问协议)
- 基于万维网的电子邮箱
- 特点
- 优势
- 常见的基于万维网的电子邮件服务:
今天我们来看电子邮件的相关内容:
电子邮件
电子邮件服务是应用层中的一个重要组成部分。电子邮件服务允许用户通过网络交换文本、图片、文件等信息。以下是一些关键概念和技术,涉及电子邮件在计算机网络中的工作方式:
SMTP(Simple Mail Transfer Protocol)
- 作用:SMTP是电子邮件系统中最基础的协议之一,用于在邮件服务器之间传输邮件。它定义了邮件如何在服务器间路由以及邮件格式的标准。
- 过程:当用户通过电子邮件客户端(如Outlook、Gmail客户端)发送邮件时,客户端通过SMTP与邮件发送方的服务器通信,将邮件传递给该服务器。然后,服务器通过SMTP与其他邮件服务器通信,将邮件一步步转发至接收方的邮件服务器。
POP3(Post Office Protocol version 3)和IMAP(Internet Message Access Protocol)
- POP3:允许用户从邮件服务器下载邮件到本地设备,通常在下载后服务器上的邮件会被删除或标记为已取。适用于偶尔从单一设备检查邮件的用户。
- IMAP:提供了一种更灵活的方式访问邮件,允许用户在邮件服务器上保留邮件,并从多个设备访问邮件的最新状态,包括邮件夹结构、邮件标记等。适合需要在多设备间同步邮件的用户。
MIME(Multipurpose Internet Mail Extensions)
- 作用:MIME扩展了SMTP协议,使得电子邮件可以包含非ASCII文本内容,如图片、音频、视频和各种文档格式。通过定义一系列的内容类型和编码方案,MIME确保了这些多媒体内容能够正确地通过电子邮件传输。
邮件客户端
- 作用:邮件客户端(或称为邮件用户代理,MUA)是用户直接交互的软件,用于撰写、发送、接收和管理电子邮件。常见的客户端包括Microsoft Outlook、Mozilla Thunderbird、以及Web界面如Gmail、Outlook.com等。
邮件服务器
- 作用:邮件服务器负责接收、存储、转发邮件。主要有两部分功能:SMTP服务器用于发送邮件;POP3或IMAP服务器用于接收邮件。常见的邮件服务器软件有Microsoft Exchange Server、Postfix、Qmail等。
电子邮件地址格式
- 格式:电子邮件地址遵循
username@domain.example
的格式,其中username
是用户在邮件服务器上的标识符,domain.example
是邮件服务器所属的域名。
安全与加密
- TLS/SSL:为了保护邮件传输过程中的安全,SMTP、POP3和IMAP协议支持使用TLS/SSL(Transport Layer Security/Secure Sockets Layer)加密通信,确保数据在传输过程中不被窃听或篡改。
- SPF、DKIM、DMARC:为了防止垃圾邮件和钓鱼邮件,电子邮件系统还采用了一系列安全策略和验证机制,如Sender Policy Framework (SPF)、DomainKeys Identified Mail (DKIM) 和 Domain-based Message Authentication, Reporting & Conformance (DMARC),来验证发件人的身份和邮件的完整性。
综上所述,电子邮件服务是一个涉及多个协议和技术的复杂系统,它不仅需要处理邮件的发送和接收,还要确保邮件的安全、完整和便捷访问。
发送电子邮件的过程
发送电子邮件的过程涉及多个步骤,主要通过SMTP(简单邮件传输协议)完成。以下是一个简化版的电子邮件发送流程:
- 撰写邮件:用户在邮件客户端(如Outlook、Gmail网页界面)中撰写邮件,包括填写收件人地址、主题、正文以及可能的附件。
- 客户端与SMTP服务器通信:
- 用户点击“发送”按钮后,邮件客户端将收集邮件的所有信息,包括发件人、收件人、主题、正文和附件。
- 客户端通过SMTP协议连接到用户的邮件发送服务器(通常是用户邮箱提供商的SMTP服务器)。连接过程中,如果服务器要求,客户端还需进行身份验证,例如输入邮箱账号密码。
- 邮件传输过程:
- 客户端通过SMTP协议向邮件服务器发送邮件内容。在传输过程中,邮件被分解成多个部分,包括邮件头部(包含发件人、收件人、主题等元数据)和邮件体(正文和附件)。
- 邮件服务器使用SMTP协议与互联网上的其他邮件服务器通信,根据收件人地址的域名部分(例如,
@example.com
),查询DNS(域名系统)以找到接收方邮件服务器的地址。- 一旦找到接收方邮件服务器的地址,发送方服务器会建立一个SMTP连接,并通过这个连接将邮件转发过去。如果接收方服务器暂时不可用,发送方服务器可能会尝试再次发送或暂时存储邮件,直到可以成功投递。
- 加密传输:在现代电子邮件系统中,SMTP连接通常会使用TLS(Transport Layer Security)加密,以保护邮件内容在传输过程中的安全,避免被第三方截取和阅读。
- 接收方邮件服务器处理:
- 接收方邮件服务器接收邮件后,会进行反垃圾邮件检查、病毒扫描等安全处理,并根据邮件地址将邮件存入相应用户的邮箱中。
- 用户接收邮件:
- 收件人通过POP3或IMAP协议连接到他们的邮件服务器,下载或在线查看邮件。如果使用的是IMAP协议,收件人可以在多个设备上同步邮件状态。
整个过程确保了电子邮件能够从发件人的客户端出发,经过一系列的服务器中转,最终安全、准确地送达收件人的邮箱。
SMTP
SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一种互联网标准,用于在邮件服务器之间传输电子邮件。它是应用层协议,基于TCP/IP协议栈,确保了电子邮件在全球范围内的可靠投递。SMTP的主要任务是控制邮件的中转方式,从邮件的源头(发件人的邮件服务器)到目的地(收件人的邮件服务器)。以下是SMTP协议的关键特性和工作流程:
特性
- 基于文本的协议:SMTP使用简单的文本命令和响应进行通信,易于实现和调试。
- 可靠性:SMTP设计确保邮件能够可靠地传输,即使在短暂的网络中断期间也能存储邮件并在网络恢复时重新尝试发送。
- 推动式协议:SMTP是一种推动式协议,意味着它主动将邮件从发送方推向接收方,而非接收方主动拉取。
- 端口:SMTP默认使用TCP端口25进行通信,但也有使用端口587(提交邮件)和465(SMTPS,安全SMTP)的现代实践。
- 认证与安全:虽然早期SMTP没有内置安全机制,但现在普遍采用TLS(Transport Layer Security)加密通信,以保护邮件内容在传输过程中的安全。
- 邮件中继:SMTP支持邮件中继,允许邮件在多个服务器之间跳跃,直至达到目标服务器,这有助于跨越不同的网络和地域传输邮件。
- 命令与响应:SMTP定义了一系列命令(如HELO、MAIL FROM、RCPT TO、DATA、QUIT等)和对应的服务器响应代码,用于指导邮件的传输过程。
工作流程
- 建立连接:客户端(发件人邮件服务器)与服务器(收件人邮件服务器)通过TCP建立连接。
- 握手与认证:连接建立后,客户端发送HELO/EHLO命令以标识自身,随后可能需要进行TLS加密握手和SMTP AUTH认证。
- 邮件传输:认证成功后,客户端通过MAIL FROM命令指定发件人地址,使用RCPT TO命令指定一个或多个收件人地址,然后发送DATA命令开始邮件内容的传输,最后以
.
结束数据传输。- 服务器响应:在整个过程中,服务器会以三位数字代码和相应的消息响应每个命令,如250表示操作成功,5xx表示永久错误,4xx表示临时错误。
- 断开连接:邮件发送完毕,客户端发送QUIT命令,双方断开TCP连接。
SMTP协议是电子邮件系统的基础,几乎所有的电子邮件服务都依赖它来实现邮件的传递。随着技术发展,虽然出现了像IMAP和POP3用于邮件接收的新协议,但SMTP依然是电子邮件发送的核心标准。
电子邮件格式
电子邮件的格式包含以下几个关键组成部分:
- 收件人(To): 收件人的电子邮件地址,表示这封邮件的主要接收者。可以有多个收件人,地址之间用逗号或分号隔开。
- 抄送(Cc): Carbon Copy的缩写,表示希望知晓邮件内容的人员,他们不是直接的行动负责人,但需要了解邮件内容。同样,可以有多个抄送人。
- 密送(Bcc): Blind Carbon Copy的缩写,用于隐藏收件人列表,即密送列表中的收件人互相看不到彼此的邮箱地址。这是为了保护隐私和减少不必要的邮件暴露。
- 主题(Subject): 邮件的主题行,简明扼要地概括邮件内容,帮助收件人快速了解邮件主旨。一个好的主题行应当清晰、具体,便于收件人判断邮件的重要性及是否需要立即处理。
- 正文(Body): 邮件的主体内容。正文通常遵循一定的礼仪规范,包括:
- 格式: 电子邮件可以是纯文本格式或HTML格式。纯文本格式只包含文字,不支持样式和图片直接嵌入;HTML格式则可以包含丰富的格式化元素、图片、超链接等。
MIME
MIME(Multipurpose Internet Mail Extensions,多功能互联网邮件扩展)是一种标准,它扩展了电子邮件的标准(最初只支持文本),使其能够支持更广泛的媒体类型,包括图像、声音、视频以及各种文档格式。MIME使得电子邮件能够变得更加丰富和多功能。以下是MIME的一些关键概念和工作方式:
关键组件
- 内容类型(Content-Type): MIME最核心的部分是定义了如何在邮件头中声明邮件内容的类型。例如,
text/plain
表示纯文本,image/jpeg
表示JPEG图像,application/pdf
表示PDF文档等。这样,接收方的邮件客户端就知道如何处理接收到的内容。
- 编码方案(Encoding): 对于非文本内容或某些特殊文本内容(如国际化字符),MIME定义了多种编码方案来确保邮件的兼容性和可传输性。常用的编码有Base64和Quoted-Printable,它们能将二进制数据转换为可打印的ASCII字符,以便通过邮件系统安全传输。
- 多部分邮件(Multipart Messages): MIME还支持在单个邮件中包含多种不同类型的内容,这就是所谓的多部分邮件。例如,一封邮件可能同时包含文本、图片和一个PDF附件。这种情况下,邮件头会包含一个
multipart/mixed
或multipart/alternative
(用于提供邮件内容的不同版本,如纯文本和HTML)的内容类型,且邮件体内会详细描述每个部分的内容类型和编码。
- 内容传输编码(Content-Transfer-Encoding): 用于指示邮件内容在传输过程中所使用的编码方式,确保内容能够通过任何邮件传输系统,即使这些系统不支持8位或二进制数据传输。
工作方式
- 当邮件客户端准备发送含有非文本元素(如图片、附件)的邮件时,它会按照MIME规范对这些内容进行编码,并在邮件头部添加适当的MIME头字段,说明邮件的内容类型、编码方式以及邮件的结构(如果是多部分邮件)。
- 邮件服务器和客户端之间通过SMTP协议传输邮件时,MIME编码的信息作为邮件的一部分被透明传输。
- 当邮件到达接收方的邮件服务器,并最终被接收方的邮件客户端下载或查看时,客户端会读取邮件头中的MIME信息,解码内容,并根据内容类型正确显示邮件的各个部分。例如,图片直接显示在邮件正文中,附件则提供下载或直接打开的功能。
总之,MIME是电子邮件系统中不可或缺的一部分,它极大地扩展了电子邮件的实用性,使之能够适应互联网上日益多样化的内容类型需求。
POP/IMAP
POP(Post Office Protocol)和IMAP(Internet Message Access Protocol)是两种用于电子邮件接收的协议,它们定义了客户端(如邮件应用程序)如何从邮件服务器检索邮件。尽管它们的目的相似,但在工作方式和提供的功能上有显著差异:
POP(邮局协议)
- 主要目的:POP设计用于下载邮件并将其从邮件服务器上删除或保存副本。它假定用户会一次性下载所有邮件并处理,之后可能不需要再次访问服务器上的邮件。
- 版本:常用版本为POP3(第三版),较旧的版本还有POP2。POP3不支持在邮件服务器上管理邮件文件夹或邮件状态(如已读/未读)。
- 工作流程:
- 客户端连接到邮件服务器的POP3端口(通常是110,或使用SSL时为995)。
- 客户端通过用户名和密码认证。
- 客户端下载邮件到本地设备,并可选择在下载后从服务器删除邮件或保留副本。
- 会话结束后,客户端断开连接。
- 适用场景:适合那些不经常需要从多个设备访问邮件,或偏好将邮件存储在本地的用户。
IMAP(因特网邮件访问协议)
- 主要目的:IMAP提供了一种更为灵活的邮件访问方式,允许用户在邮件服务器上管理和存储邮件,同时在多个设备上查看邮件时保持同步。这意味着用户可以在不下载邮件的情况下浏览邮件标题、创建和管理文件夹,并查看邮件状态。
- 版本:主流版本为IMAP4(第四版),支持更多的功能,如邮件分拣规则、搜索、标记等。
- 工作流程:
- 客户端连接到邮件服务器的IMAP端口(通常是143,或使用SSL/TLS时为993)。
- 客户端进行身份验证。
- 客户端可以检索邮件列表、邮件内容、文件夹结构等,所有操作几乎实时同步到服务器。
- 用户可在服务器上直接管理邮件(移动、删除、标记等),操作结果会即时反映在所有已登录的客户端上。
- 即使断开连接,邮件仍保留在服务器上,除非用户明确选择删除。
- 适用场景:适合需要跨设备访问邮件、频繁处理邮件且需要邮件状态保持一致的用户。
总结来说,POP更适合一次性下载邮件并存储在本地的简单场景,而IMAP则提供了更强大的邮件管理功能,适合需要在多设备间保持邮件同步的用户。
基于万维网的电子邮箱
基于万维网的电子邮件,通常指的是Webmail服务,是一种通过网页浏览器访问和管理电子邮件的方式,无需在个人电脑或设备上安装专门的电子邮件客户端软件。用户只需要有网络连接和浏览器,就能在全球任何地方访问自己的电子邮箱。以下是基于万维网的电子邮件服务的一些特点和优势:
特点
- 访问便捷性:用户只需记住邮箱地址和密码,通过任意设备上的浏览器登录Webmail网站即可查看和管理邮件,不受地点限制。
- 跨平台兼容:Webmail服务支持各种操作系统和浏览器,无论是Windows、macOS、Linux,还是Chrome、Firefox、Safari等浏览器,都能无缝使用。
- 即时更新:服务提供商负责维护和升级系统,用户无需手动更新软件,即可享受最新的功能和服务。
- 集成服务:许多Webmail服务(如Gmail、Outlook.com、Yahoo! Mail等)除了基本的邮件收发功能外,还集成了日历、联系人管理、任务列表、云存储等附加服务,形成一套完整的个人信息管理系统。
- 安全性:大多数Webmail服务提供安全连接(HTTPS),保障数据传输过程中的安全,同时也会采取措施防范垃圾邮件、病毒和网络攻击。
- 存储空间:服务商通常提供较大容量的邮箱空间,有的甚至是无限存储,用户不必担心邮箱满载问题。
优势
- 灵活性:用户可以在任何有网络的地方访问邮件,尤其适合经常出差或使用多种设备的人群。
- 成本效益:对于个人用户而言,许多Webmail服务是免费的,减少了购买和维护邮件客户端软件的成本。
- 协作便利:对于团队和企业,Webmail服务常常与办公套件集成,便于共享日程、文档和任务,促进团队协作。
常见的基于万维网的电子邮件服务:
- Gmail:由谷歌提供,以其高效的搜索功能、大存储空间和良好的垃圾邮件过滤著称。
- Outlook.com:微软旗下的服务,与Office 365套件紧密集成,适合需要高级办公功能的用户。
- Yahoo! Mail:提供免费邮箱服务,具有大容量存储和直观的用户界面。
- Zoho Mail:为企业用户提供专业的邮件解决方案,包括自定义域名、协作工具等。
总的来说,基于万维网的电子邮件服务极大地方便了用户的邮件管理和沟通,成为现代生活中不可或缺的一部分。
最后,我们来看两道题:
相关文章:

计算机网络 —— 应用层(电子邮件)
计算机网络 —— 应用层(电子邮件) 电子邮件发送电子邮件的过程SMTP特性工作流程 电子邮件格式MIME关键组件工作方式 POP/IMAPPOP(邮局协议)IMAP(因特网邮件访问协议) 基于万维网的电子邮箱特点优势常见的基…...
Java18新特性(极简)
一、引言 自1995年Java语言首次亮相以来,它已经成为企业级应用、移动应用和游戏开发等领域不可或缺的一部分。随着技术的不断进步,Java也在持续演化,每个新版本都带来了诸多新特性和性能优化,旨在提升开发者的编程效率和应用程序的…...
vscode连接ssh远程服务器
当使用Visual Studio Code (VSCode) 连接SSH远程服务器时,可以遵循以下步骤。这些步骤将帮助你设置并连接到远程服务器,包括免密登录的设置(如果需要)。 一、安装并配置Remote-SSH插件 下载并安装VSCode:确保你已经下…...
【趣味测试】
编程过程中遇到的趣味知识 1 Cpp 1.1 浮点数计算 if (0.1 0.2 0.3) {std::cout << "0.1 0.2 0.3 true" << std::endl;} else {std::cout << "0.1 0.2 0.3 false" << std::endl;}if (0.1 0.3 0.4) {std::cout << &…...

数据结构经典面试之数组——C#和C++篇
文章目录 1. 数组的基本概念与功能2. C#数组创建数组访问数组元素修改数组元素数组排序 3. C数组创建数组访问数组元素修改数组元素数组排序 4. 数组的实际应用与性能优化5. C#数组示例6. C数组示例总结 数组是编程中常用的数据结构之一,它用于存储一系列相同类型的…...
docker的基本知识
文章目录 前言docker的基本知识1. docker 的底层逻辑2. docker 的核心要素2.1. 镜像的基本概念:2.2. 容器的基本概念:2.3. 仓库的基本概念: 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。 …...

React Native性能优化红宝书
一、React Native介绍 React Native 是Facebook在React.js Conf2015 推出的开源框架,使用React和应用平台的原生功能来构建 Android 和 iOS 应用。通过 React Native,可以使用 JavaScript 来访问移动平台的 API,使用 React 组件来描述 UI 的…...

后端不提供文件流接口,前台js使用a标签实现当前表格数据(数组非blob数据)下载成Excel
前言:开发过程中遇到的一些业务场景,如果第三方不让使用,后端不提供接口,就只能拿到table数据(Array),实现excel文件下载。 废话不多说,直接上代码,方法后续自行封装即可: functio…...

如何使用ChatGPT辅助设计工作
文章目录 设计师如何使用ChatGPT提升工作效率?25个案例告诉你!什么是 prompt?咨询信息型 prompt vs 执行任务 prompt编写出色 prompt 的基本思路撰写 prompt 的案例和技巧1、将 ChatGPT 视作专业人士2、使用 ChatGPT 创建表单3、使用 ChatGPT…...

hadoop服务器启动后无法执行hdfs dfs命令
集群启动后,无法正常使用hdfs的任何命令。使用jps查看进程,发现namenode没有启动,然后再进入到Hadoop的相应目录,打开里面的logs文件 打开Hadoop的master的log 再使用vi编辑器查看(也可以用less或者more命令查看&#…...

Flink 1.19.1 standalone 集群模式部署及配置
flink 1.19起 conf/flink-conf.yaml 更改为新的 conf/config.yaml standalone集群: dev001、dev002、dev003 config.yaml: jobmanager address 统一使用 dev001,bind-port 统一改成 0.0.0.0,taskmanager address 分别更改为dev所在host dev001 config.…...

【深度学习】GELU激活函数是什么?
torch.nn.GELU 模块在 PyTorch 中实现了高斯误差线性单元(GELU)激活函数。GELU 被用于许多深度学习模型中,包括Transformer,因为它相比传统的 ReLU(整流线性单元)函数能够更好地近似神经元的真实激活行为。…...
如何编译和运行您的第一个Java程序
如何编译和运行您的第一个Java程序 让我们从一个简单的java程序开始。 简单的Java程序 这是一个非常基本的java程序,它会打印一条消息“这是我在java中的第一个程序”。 public class FirstJavaProgram {public static void main(String[] args){System.…...

vscode用vue框架写一个登陆页面
目录 一、创建登录页面 二、构建好登陆页面的路由 三、编写登录页代码 1.添加基础结构 2.给登录页添加背景 3.解决填充不满问题 4.我们把背景的红颜色替换成背景图: 5.在页面中央添加一个卡片来显示登录页面 6.设置中间卡片页面的左侧 7.设置右侧的样式及…...

腾讯云API安全保障措施?有哪些调用限制?
腾讯云API的调用效率如何优化?怎么使用API接口发信? 腾讯云API作为腾讯云提供的核心服务之一,广泛应用于各行各业。然而,随着API应用的普及,API安全问题也日益突出。AokSend将详细探讨腾讯云API的安全保障措施&#x…...
在建设工程合同争议案件中,如何来认定“竣工验收”?
在建设工程合同争议案件中,如何来认定“竣工验收”? 建设工程的最终竣工验收,既涉及在建设单位组织下的五方单位验收,又需政府质量管理部门的监督验收以及竣工验收备案,工程档案还需递交工程所在地的工程档案馆归档。…...

Linux:多线程中的互斥与同步
多线程 线程互斥互斥锁互斥锁实现的原理封装原生线程库封装互斥锁 死锁避免死锁的四种方法 线程同步条件变量 线程互斥 在多线程中,如果存在有一个全局变量,那么这个全局变量会被所有执行流所共享。但是,资源共享就会存在一种问题࿱…...
数据仓库之主题域
数据仓库的主题域(Subject Area)是按照特定业务领域或主题对数据进行分类和组织的方式。每个主题域集中反映一个特定的业务方面,使得数据分析和查询更加清晰和高效。主题域通常与企业的关键业务过程相关,能够帮助用户在数据仓库中…...

【简易版tinySTL】 vector容器
文章目录 基本概念功能思路代码实现vector.htest.cpp 代码详解变量构造函数析构函数拷贝构造operatorpush_backoperator[]insertprintElements 本实现版本 和 C STL标准库实现版本的区别: 基本概念 vector数据结构和数组非常相似,也称为单端数组vector与…...

BRAVE:扩展视觉编码能力,推动视觉-语言模型发展
视觉-语言模型(VLMs)在理解和生成涉及视觉与文本的任务上取得了显著进展,它们在理解和生成结合视觉与文本信息的任务中扮演着重要角色。然而,这些模型的性能往往受限于其视觉编码器的能力。例如,现有的一些模型可能对某…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...