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

2025-05-08 Unity 网络基础9——FTP通信

文章目录

  • 1 FTP
    • 1.1 工作原理
    • 1.2 传输模式
  • 2 搭建 FTP 服务器
    • 2.1 启用服务
    • 2.2 配置站点
    • 2.3 设置防火墙
    • 2.4 指定用户登录
  • 3 常用 API
    • 3.1 NetworkCredential
    • 3.2 FtpWebRequest
    • 3.3 FtpWebResponse
  • 4 实战操作
    • 4.1 上传文件
    • 4.2 下载文件
    • 4.3 删除文件
    • 4.4 获取文件大小
    • 4.5 创建文件夹
    • 4.6 获取文件与文件夹名

1 FTP

​ FTP(File Transfer Protocol)文件传输协议,是支持 Internet 文件传输的各种规则所组成的集合。

​ FTP 文件传输协议使 Internet 用户可以把文件从一台主机拷贝到另一台主机上;除此之外,FTP 还提供登录、目录查询以及其他会话控制等功能。

1.1 工作原理

​ FTP 的本质是 TCP 通信。通过 FTP 传输文件,双发至少需要建立两个 TCP 连接。

  • 一个称为控制连接,用于传输 FTP命令。
  • 一个称为数据连接,用于传输文件数据。
image-20250508100430100

​ 数据连接和控制连接方向一般是相反的。

​ 用户使用 FTP 客户端连接 FTP 服务区,请求下载文件。

  • 控制连接方向:客户端主动连接服务器告知其下载命令。
  • 数据连接方向:服务端主动连接客户端下发数据。

​ 一般情况下,使用 FTP 传输文件时,客户端必须先登录服务器,获得相应权限后,才能上传或下载文件。

​ 服务器也可以允许用户匿名登录 FTP,不需要都拥有一个合法账号。

1.2 传输模式

​ 当客户端和 FTP 服务器建立控制连接后,需要告诉服务器采用那种传输模式。

  1. 主动模式 (Port模式)

    服务器主动连接客户端,然后传输文件 。

  2. 被动模式 (Passive模式)

    客户端主动连接服务器 即控制连接和数据连接都由客户端发起。

​ 在使用 FTP 进行数据传输时,有两种数据传输方式。

  1. ASCII 传输方式

    以 ASCII 编码方式传输数据,适用于传输仅包含英文的命令和参数或者英文文本文件 。

  2. 二进制传输方式(建议使用该方式)

    可以指定采用哪种编码传输命令和文件数据。如果传输的文件不是英文文件则应该采用该方式。

2 搭建 FTP 服务器

配置环境

  • windows 11

2.1 启用服务

  1. 点击 windows 菜单,在搜索框内输入“控制面板”并打开。
image-20250508101926782
  1. 点击“程序”->“启用或关闭 Windows 功能”。
image-20250508102434566 image-20250508102456050
  1. 安装 FTP,web 管理工具,internet 可承载的 web 核心。
image-20250508102718205

2.2 配置站点

  1. 通过在 “开始” 菜单中搜索 “IIS” 来找到 “Internet Information Services (IIS) 管理器” 并打开。

    image-20250508102913144
  2. 鼠标右键左侧的“网站”,点击“添加 FTP 站点”。

    image-20250508103113457
  3. 填入自己的站点名称,并选择物理路径。

    image-20250508103333704
  4. 继续配置自己电脑的 IP 地址。

    image-20250508103501173

    IP 地址在这里查看。

    image-20250508103718242
  5. 选择身份验证方式和授权规则。身份验证可以选择

    • “匿名”(允许任何人访问)。
    • “基本”(需要用户名和密码)。

    授权规则可以设置允许哪些用户或用户组访问,以及访问权限(读取、写入等)。

image-20250508104007308

2.3 设置防火墙

  1. 配置完成后,需要进入防火墙设置允许应用通过。

    image-20250508104447474

​ 到此,所有用户均可直接通过“ftp://你的 IP”访问服务器。

image-20250508140032796

2.4 指定用户登录

  1. 在 windows 菜单中搜索“计算机管理”并进入。
image-20250508140452181
  1. 展开窗口左侧的“本地用户和组”,点击“用户”,窗口右侧即为用户列表。

    右键单击空白处,点击新用户,此时将弹出新用户创建窗口。

image-20250508140608153
  1. 创建你的用户。
image-20250508140728187
  1. 回到 “Internet Information Services (IIS) 管理器”,进入“FTP 授权规则”。
image-20250508140822667
  1. 点击右侧“添加允许规则”,填写刚创建的用户。

    本文创建了用户名:FTPUser,密码:123456。

image-20250508141050162

​ 到此,用户通过“ftp://你的 IP”访问服务器时,需要密码验证。

image-20250508141242250

3 常用 API

3.1 NetworkCredential

  • 命名空间System.Net
  • 用途:用于在 FTP 文件传输时设置账号密码。
NetworkCredential n = new NetworkCredential("用户名", "密码");

3.2 FtpWebRequest

  • 命名空间System.Net

  • 用途:FTP 文件传输协议客户端操作类,主要用于上传、下载、删除服务器上的文件。

重要方法

  1. Create() - 创建新的WebRequest,用于进行FTP相关操作
FtpWebRequest req = FtpWebRequest.Create(new Uri("ftp://127.0.0.1/Test.txt")) as FtpWebRequest;
  1. req.Abort() - 终止正在进行的文件传输。
  2. req.GetRequestStream() - 获取用于上传的流。
  3. req.GetResponse() - 返回 FTP 服务器响应。

重要成员

  1. req.Credentials - 通信凭证,设置为 NetworkCredential 对象。
req.Credentials = n;
  1. req.KeepAlive - 控制完成请求后是否关闭到 FTP 服务器的连接(默认为 true 不关闭)。
  2. req.Method - 操作命令设置(来自WebRequestMethods.Ftp类):
    • DeleteFile - 删除文件。
    • DownloadFile - 下载文件。
    • ListDirectory - 获取文件简短列表。
    • ListDirectoryDetails - 获取文件详细列表。
    • MakeDirectory - 创建目录。
    • RemoveDirectory - 删除目录。
    • UploadFile - 上传文件。
  3. req.UseBinary - 是否使用二进制传输(推荐设置为 true)。

3.3 FtpWebResponse

  • 命名空间System.Net
  • 用途:封装 FTP 服务器对请求的响应,提供操作状态和下载数据。
FtpWebResponse res = req.GetResponse() as FtpWebResponse;

重要方法

  1. res.Close() - 释放所有资源。
  2. res.GetResponseStream() - 返回从 FTP 服务器下载数据的流。

重要成员

  1. res.ContentLength - 接收数据的长度。
  2. res.ContentType - 接收数据的类型。
  3. res.StatusCode - FTP 服务器下发的最新状态码。
  4. res.StatusDescription - 状态代码的文本描述。
  5. res.BannerMessage - 登录前服务器发送的消息。
  6. res.ExitMessage - FTP 会话结束时服务器发送的消息。
  7. res.LastModified - 服务器上文件的上次修改日期和时间。

4 实战操作

4.1 上传文件

  1. 在 Unity 项目中创建 StreamingAssets 文件夹,并放入一张图片“test.png”。
image-20250508215734761
  1. 创建以下脚本,并挂载到场景上。

    using UnityEngine;namespace Lesson
    {using System;using System.IO;using System.Net;public class Lesson20 : MonoBehaviour{private void Start(){try{// 创建一个FTP请求var req = WebRequest.Create($"ftp://你的IP地址/pic_{DateTime.Now:yyyy-M-d-HH-mm-ss}.png") as FtpWebRequest;// 设置FTP请求的用户名和密码req.Credentials = new NetworkCredential("FTPUser", "123456");// 设置代理为空req.Proxy = null;// 设置保持连接为truereq.KeepAlive = true;// 设置请求方法为上传文件req.Method = WebRequestMethods.Ftp.UploadFile;// 设置使用二进制上传req.UseBinary = true;// 获取请求流var upLoadStream = req.GetRequestStream();// 打开要上传的文件using (var file = File.OpenRead(Application.streamingAssetsPath + "/test.png")){// 创建一个字节数组var bytes = new byte[1024];// 读取文件内容到字节数组var contentLength = file.Read(bytes, 0, bytes.Length);// 循环读取文件内容,直到文件内容读取完毕while (contentLength > 0){// 将字节数组写入请求流upLoadStream.Write(bytes, 0, contentLength);// 继续读取文件内容contentLength = file.Read(bytes, 0, bytes.Length);}// 关闭文件流file.Close();// 关闭请求流upLoadStream.Close();// 打印上传成功信息print("upload success");}}catch (Exception e){// 打印异常信息Console.WriteLine(e);// 抛出异常throw;}}}
    }
    
  2. 运行 Unity,即可传输 test.png 到 FTP 服务器上。

    image-20250508220136340 image-20250508220125617

4.2 下载文件

  1. 在 FTP 服务器上准备一个文件,这里以 Test.txt 为例。

    image-20250508220303259
  2. 创建以下脚本,并挂载到场景上。

    using UnityEngine;namespace Lesson
    {using System;using System.IO;using System.Net;public class Lesson21 : MonoBehaviour{private void Start(){try{// 创建一个WebRequest对象,指定FTP地址var req = WebRequest.Create("ftp://你的IP地址/Test.txt") as FtpWebRequest;// 设置FTP登录凭证req.Credentials = new NetworkCredential("FTPUser", "123456");// 设置代理为空req.Proxy = null;// 设置保持连接为truereq.KeepAlive = true;// 设置请求方法为下载文件req.Method = WebRequestMethods.Ftp.DownloadFile;// 设置使用二进制传输req.UseBinary = true;// 获取响应var res = req.GetResponse() as FtpWebResponse;// 获取响应流var downLoadStream = res.GetResponseStream();// 创建文件using (var file = File.Create(Application.streamingAssetsPath + $"/test_{DateTime.Now:yyyy-M-d-HH-mm-ss}.txt")){// 创建一个字节数组var bytes = new byte[1024];// 读取响应流中的数据var contentLength = downLoadStream.Read(bytes, 0, bytes.Length);// 循环读取数据,直到读取完毕while (contentLength > 0){// 将数据写入文件file.Write(bytes, 0, contentLength);// 继续读取数据contentLength = downLoadStream.Read(bytes, 0, bytes.Length);}// 关闭响应流downLoadStream.Close();// 关闭文件file.Close();// 打印下载成功print("download success");}}catch (Exception e){// 打印异常信息Console.WriteLine(e.Message);// 抛出异常throw;}}}
    }
    
  3. 运行 Unity,即可从 FTP 服务器上下载 Test.txt 到 StreamingAssets 文件夹中。

    image-20250508220636160

4.3 删除文件

​ 和上述操作类似,直接上代码。

using UnityEngine;namespace Lesson
{using System;using System.IO;using System.Net;public class Lesson22 : MonoBehaviour{private void Start(){try{// 创建一个WebRequest对象,指定FTP地址var req = WebRequest.Create("ftp://你的IP地址/Test.txt") as FtpWebRequest;// 设置FTP登录凭证req.Credentials = new NetworkCredential("FTPUser", "123456");// 设置代理为空req.Proxy = null;// 设置保持连接为truereq.KeepAlive = true;// 设置请求方法为删除文件req.Method = WebRequestMethods.Ftp.DeleteFile;// 获取响应var res = req.GetResponse() as FtpWebResponse;// 关闭响应流res.Close();// 打印下载成功print("delete success");}catch (Exception e){// 打印异常信息Console.WriteLine(e.Message);// 抛出异常throw;}}}
}

4.4 获取文件大小

using UnityEngine;namespace Lesson
{using System;using System.IO;using System.Net;public class Lesson22 : MonoBehaviour{private void Start(){try{// 创建一个WebRequest对象,指定FTP地址var req = WebRequest.Create("ftp://你的IP地址/Test.txt") as FtpWebRequest;// 设置FTP登录凭证req.Credentials = new NetworkCredential("FTPUser", "123456");// 设置代理为空req.Proxy = null;// 设置保持连接为truereq.KeepAlive = true;// 设置请求方法为获取文件大小req.Method = WebRequestMethods.Ftp.GetFileSize;// 获取响应var res = req.GetResponse() as FtpWebResponse;// 打印文件大小print(res.ContentLength);// 关闭响应流res.Close();// 打印下载成功print("delete success");}catch (Exception e){// 打印异常信息Console.WriteLine(e.Message);// 抛出异常throw;}}}
}

4.5 创建文件夹

using UnityEngine;namespace Lesson
{using System;using System.IO;using System.Net;public class Lesson22 : MonoBehaviour{private void Start(){try{// 创建一个WebRequest对象,指定FTP地址var req = WebRequest.Create("ftp://你的IP地址/TestDir") as FtpWebRequest;// 设置FTP登录凭证req.Credentials = new NetworkCredential("FTPUser", "123456");// 设置代理为空req.Proxy = null;// 设置保持连接为truereq.KeepAlive = true;// 设置请求方法为创建文件夹req.Method = WebRequestMethods.Ftp.MakeDirectory;// 获取响应,创建文件夹var res = req.GetResponse() as FtpWebResponse;// 关闭响应流res.Close();// 打印下载成功print("delete success");}catch (Exception e){// 打印异常信息Console.WriteLine(e.Message);// 抛出异常throw;}}}
}

4.6 获取文件与文件夹名

using UnityEngine;namespace Lesson
{using System;using System.IO;using System.Net;public class Lesson22 : MonoBehaviour{private void Start(){try{// 创建一个WebRequest对象,指定FTP地址var req = WebRequest.Create("ftp://你的IP地址/TestDir") as FtpWebRequest;// 设置FTP登录凭证req.Credentials = new NetworkCredential("FTPUser", "123456");// 设置代理为空req.Proxy = null;// 设置保持连接为truereq.KeepAlive = true;// 设置请求方法为读取文件夹信息req.Method = WebRequestMethods.Ftp.ListDirectory;// 获取响应var res = req.GetResponse() as FtpWebResponse;// 创建一个StreamReader对象,用于读取从res对象中获取的响应流var streamReader = new StreamReader(res.GetResponseStream());// 读取所有响应内容,包括文件名和文件夹名// var dir = streamReader.ReadToEnd();// print(dir);// 逐行读取响应内容string line = streamReader.ReadLine();while (line != null){print(line);line = streamReader.ReadLine();}// 关闭响应流res.Close();// 打印下载成功print("delete success");}catch (Exception e){// 打印异常信息Console.WriteLine(e.Message);// 抛出异常throw;}}}
}

相关文章:

2025-05-08 Unity 网络基础9——FTP通信

文章目录 1 FTP1.1 工作原理1.2 传输模式 2 搭建 FTP 服务器2.1 启用服务2.2 配置站点2.3 设置防火墙2.4 指定用户登录 3 常用 API3.1 NetworkCredential3.2 FtpWebRequest3.3 FtpWebResponse 4 实战操作4.1 上传文件4.2 下载文件4.3 删除文件4.4 获取文件大小4.5 创建文件夹4.…...

3.2.3 掌握RDD转换算子 - 5. 合并算子 - union()

在本节课中,我们学习了Spark RDD的union()算子,它能够将两个数据类型一致的RDD合并为一个新的RDD,主要用于整合不同数据源。通过案例演示,我们成功将两个简单的数字RDD合并,直观地看到合并结果是按原顺序纵向拼接&…...

数据来源合法性尽职调查:保障权益的关键防线

首席数据官高鹏律师团队 在当今数字化时代,数据已成为企业和个人最为宝贵的资产之一。然而,伴随着数据的广泛应用与流通,其来源的合法性问题愈发凸显,犹如隐藏在暗处的礁石,稍不留神就可能让涉事主体陷入法律的漩涡。…...

sui在windows虚拟化子系统Ubuntu和纯windows下的安装和使用

一、sui在windows虚拟化子系统Ubuntu下的安装使用(WindowsWsl2Ubuntu24.04) 前言:解释一下WSL、Ubuntu的关系 WSL(Windows Subsystem for Linux)是微软推出的一项功能,允许用户在 Windows 系统中原生运行…...

springmvc的入门案例

springmvc的概述 SpringMVC的概述 是一种基于Java实现的MVC设计模型的请求驱动类型的轻量级WEB框架。Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架…...

【MCP】为什么使用Streamable HTTP: 相比SSE的优势与实践指南

在现代Web开发中,实时通信已经成为许多应用的核心需求。从聊天应用到股票市场更新,从游戏服务器到AI模型通信,各种技术应运而生以满足这些需求。最近,Model Context Protocol (MCP) 引入了一种新的传输机制 —— Streamable HTTP&…...

CentOS的防火墙工具(firewalld和iptables)的使用

CentOS的防火墙工具因版本不同而异,以下是具体操作步骤: 一、firewalld(CentOS 7及以上默认工具)‌ ‌1、安装与启动‌: 安装:sudo yum install firewalld 启动服务:sudo systemctl start fir…...

解析小米大模型MiMo:解锁语言模型推理潜力

一、基本介绍 1.1 项目背景 在大型语言模型快速发展的背景下,小米AI团队推出MiMo系列模型,突破性地在7B参数规模上实现卓越推理能力。传统观点认为32B以上模型才能胜任复杂推理任务,而MiMo通过创新的训练范式证明:精心设计的预训练和强化学习策略,可使小模型迸发巨大推理…...

web 自动化之 Selenium 元素定位和浏览器操作

文章目录 一、元素定位的八大方法1、基于 id/name/class/tag_name 定位2、基于 a 标签元素的链接文本定位3、基于xpath定位4、css定位 二、浏览器操作1、信息获取2、 浏览器关闭3、 浏览器控制 一、元素定位的八大方法 web 自动化测试就是通过代码对网页进行测试,在…...

vscode如何使用 GitHub Copilot

1.在vscode中扩展工具栏搜索“copilot”,选择GitHub Copilot安装。 2.使用快捷键CtrlAltI 打开聊天界面,输入问题后回车即可使用。 注意: 使用copilot需要使用GitHub账号先登录,如果打不开登录页面,需要修改host文件&a…...

AWS之存储服务

存储术语 分类 接口/技术类型 应用场景特点 关系及区别 机械硬盘接口 IDE(Integrated Drive Electronics) 早期用于个人电脑,现已逐渐淘汰 机械硬盘接口、固态硬盘接口是硬盘与主机或其他设备连接的物理和协议规范; FC - …...

安装 Docker

一、CentOS 系统安装 Docker 1. 卸载旧版本(如有) sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 2. 安装依赖工具 sudo yum install -y…...

代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?

在现代网络中,代理服务器是一种常见的工具,用于提高安全性、匿名性和访问速度。常见的代理协议包括HTTP、HTTPS和SOCKS5。本文将详细解析这三种代理协议,并帮助您根据具体需求选择最合适的代理协议。 一、HTTP代理 1.1 特点 用途广泛&…...

用于构建安全AI代理的开源防护系统

大家读完觉得有帮助记得及时关注!!! 大型语言模型(LLMs)已经从简单的聊天机器人演变为能够执行复杂任务的自主代理,例如编辑生产代码、编排工作流程以及基于不受信任的输入(如网页和电子邮件&am…...

CTF-DAY10

[SWPUCTF 2021 新生赛]zipbomb 题目描述: 请注意,不要以任何方式尝试完全解压该文件,运存被塞满后果自负。请尝试分析该文件。 使用WinRAR解压打开 CTFSHOW刷题 crypto11 密文:a8db1d82db78ed452ba0882fb9554fc 提交 flag{明…...

WHAT - react-query(TanStack Query) vs swr 请求

文章目录 react-query什么是 TanStack Query(原 React Query)核心特性 TanStack Query vs SWR 对比具体特性对比哪个更适合你 总结 react-query react-query(现已更名为 TanStack Query)和 SWR 一样,都是专注于 远程数…...

WebFlux与HttpStreamable关系解析

1-Streamable 1-WebFlux与HttpStreamable关系解析2-MCP协议Streamable HTTP 2-参考网址 MCP协议Streamable HTTPMCP协议重大升级,Spring AI Alibaba联合Higress发布业界首个Streamable HTTP实现方案 3-WebFlux与HttpStreamable关系解析 WebFlux 和 HttpStreamabl…...

深度学习工程化:基于TensorFlow的模型部署全流程详解

深度学习工程化:基于TensorFlow的模型部署全流程详解 引言 在深度学习项目中,模型训练只是第一步,将模型成功部署到生产环境才是真正创造价值的关键。本文将全面介绍TensorFlow模型从训练到部署的完整工程化流程,涵盖多种部署场…...

RAG技术在测试用例生成中的应用

测试用例中的 RAG 通常指 Retrieval-Augmented Generation(检索增强生成) 在测试领域的应用,是一种结合检索与生成的技术方法,用于自动化生成或优化测试用例。 ​​核心概念​​ RAG 技术背景: • RAG 最初由 Meta 提出…...

uniapp + vue3 + 京东Nut动作面板组件:实现登录弹框组件(含代码、案例、小程序截图)

uniapp + vue3 + 京东Nut动作面板组件:实现登录弹框组件(含代码、案例、小程序截图) 代码示下,不再赘述。 动作面板组件:https://nutui-uniapp.netlify.app/components/feedback/actionsheet.html 项目背景 业务需求 描述: uniapp + vue3 + 京东Nut框架:实现登录弹框组…...

在登录页面上添加验证码

这是一个简单的登录页面,里面必须通过验证码通过之后才能够进入页面 创建一个servlet(验证码的) package qcby.util;import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; im…...

人协同的自动化需求分析

多人协同的自动化需求分析是指通过技术工具和协作流程,让多个参与者(如产品经理、开发人员、测试人员等)在需求分析阶段高效协作,并借助自动化手段提升需求收集、整理、验证和管理的效率与质量。以下是其核心要点: 1. …...

C++使用PoDoFo库处理PDF文件

📚 PoDoFo 简介 PoDoFo 是一个用 C 编写的自由开源库,专用于 读取、写入和操作 PDF 文件。它适用于需要程序化处理 PDF 文件的应用程序,比如批量生成、修改、合并、提取元数据、绘图等。 🌟 核心特点 特性说明📄 P…...

18.Java 序列化与反序列化

18.Java 序列化与反序列化 概述 在Java中,序列化是将对象的状态信息转换为可以存储或传输的格式的过程,而反序列化则是将这种格式转换回Java对象的过程。 序列化 要使一个对象支持序列化,该对象必须实现java.io.Serializable接口。这个接…...

大语言模型主流架构解析:从 Transformer 到 GPT、BERT

📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4-turbo模型生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认其准…...

flow-matching 之学习matcha-tts cosyvoice

文章目录 matcha 实现cosyvoice 实现chunk_fmchunk_maskcache_attn stream token2wav 关于flow-matching 很好的原理性解释文章, 值得仔细读,多读几遍,关于文章Flow Straight and Fast: Learning to Generate and Transfer Data with Rectifi…...

聊聊自动化办公未来趋势

1. 自动化办公未来趋势 1.1 智能化与AI融合加深 随着人工智能技术的不断成熟,其在自动化办公中的应用将更加广泛和深入。未来,办公软件将具备更强的智能交互能力,能够理解自然语言指令,自动完成复杂的任务,如文档编辑…...

软件工程之需求分析涉及的图与工具

需求分析与规格说明书是一项十分艰巨复杂的工作。用户与分析员之间需要沟通的内容非常的多,在双方交流信息的过程中很容易出现误解或遗漏,也可能存在二义性。如何才能更加准确的表达双方的意思,且清楚明了,绘制各类图形就显得非常…...

火影bug,未保证短时间数据一致性,拿这个例子讲一下Redis

本文只拿这个游戏的bug来举例Redis,如果有不妥的地方,联系我进行删除 描述:今天在高速上打火影(有隧道,有时候会卡),发现了个bug,我点了两次-1000的忍玉(大概用了1千七百…...

机器人领域和心理学领域 恐怖谷 是什么

机器人领域和心理学领域 恐怖谷 是什么 恐怖谷是一个在机器人领域和心理学领域备受关注的概念,由日本机器人专家森政弘于1970年提出。 含义 当机器人与人类的相似度达到一定程度时,人类对它们的情感反应会突然从积极变为消极,产生一种毛骨悚然、厌恶恐惧的感觉。这种情感…...

Hadoop MapReduce 图文代码讲解

一、MapReduce原理 首先要了解一下MapReduce的几个过程,每个数据集中需要编写的逻辑会有所不同,但是大致是差不多的 1、MapReduce大致为这几个过程: 1、读取数据集并根据文件大小128MB拆分成多个map同时进行下面步骤 2、Map: 匹配和数据筛…...

【Rust】结构体

目录 结构体结构体的定义和实例化结构体使用场景方法定义方法多参数方法关联函数多个 impl 块 结构体 结构体,是一个自定义数据类型,允许包装和命名多个相关的值,从而形成一个有意义的组合,类似于 C语言中的结构体或者 Java 中的…...

青少年编程与数学 02-019 Rust 编程基础 01课题、环境准备

青少年编程与数学 02-019 Rust 编程基础 01课题、环境准备 一、Rust核心特性应用场景开发工具社区与生态 二、Rust 和 Python 比较1. **内存安全与并发编程**2. **性能**3. **零成本抽象**4. **跨平台支持**5. **社区与生态系统**6. **错误处理**7. **安全性**适用场景总结 三、…...

深入理解Embedding Models(嵌入模型):从原理到实战(上)

🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、嵌入模型是什么 2、在NLP、推荐系统、知识图谱等领域…...

世界耳机品牌与排名

耳机可以说是日常用的比较多的产品之一,而且现在的耳机相较于传统的耳机还多了很多的功能,比如现在经常开车的人实用的蓝牙耳机,虽然日常用的多,那么你知道全球知名的耳机品牌有哪些吗? 拜亚耳机,德国品牌&…...

防静电地板人工费多少钱一平方米?2025年报价解析!

在机房、实验室、数据中心等专业场所,防静电地板是保障设备正常运行的关键“防线”。但很多人在装修时,面对“防静电地板安装人工费”的报价往往一头雾水——有的报25元/㎡,有的却要50元/㎡,差价背后究竟藏着什么门道?…...

【详细图文】使用MobaXterm的SSH功能远程连接服务器,并创建pytorch环境,使用yolov8训练数据集

目录 一、使用MobaXterm连接服务器 1、官网下载MobaXterm 2、SSH连接服务器 二、查看服务器的基本信息 1、查看服务器基本信息(可选) (1)查看主机名和系统版本 (2)查看CPU信息 (3)查看内存信息 (4)查看网卡信息 (5)查看总进程数 (6)查看活动进程数 (…...

路由器断流排查终极指南:从Ping测试到Wireshark抓包5步定位法

测试路由器是否出现“断流”(网络连接间歇性中断),需通过多维度排查硬件、软件及外部干扰因素。以下是详细步骤指南: 一、基础环境准备 设备连接 有线测试:用网线将电脑直接连接路由器LAN口,排除WiFi干扰。…...

小白借助ai对全栈进行浅浅理解(学习笔记)-Lambda、Optional 避免空指针与新的日期时间 API

学习顺序:Java 基础 → Spring Boot → Vue → 前后端整合 → 数据库 → 部署 → 进阶实战。 Lambda 表达式(Lambda 表达式是 Java 8 引入的核心特性,旨在简化函数式编程,替代冗长的匿名内部类,使代码更简洁、灵活 &am…...

可观测性方案怎么选?SelectDB vs Elasticsearch vs ClickHouse

可观测性(Observability)是指通过系统的外部输出数据,推断其内部状态的能力。可观测性平台通过采集、存储、可视化分析三大可观测性数据:日志(Logging)、链路追踪(Tracing)和指标&am…...

100个常用的DeepSeek指令

日常生活类(20个) 1. 新闻解读:请为我解读今天的热点新闻。 2. 天气查询:请查询……的天气并推荐着装。 3. 旅行攻略:请制定前往……的旅行攻略。 4. 菜谱生成:请生成……菜的具体做法。 5. 解决方案&…...

【C语言】--指针超详解(二)

目录 一.const修饰指针 1.1--const修饰变量 1.2--const修饰指针变量 二.野指针 2.1--野指针成因 2.1.1--指针未初始化 2.1.2--指针越界访问 2.1.3-- 指针指向的空间释放 2.2--如何规避野指针 2.2.1--指针初始化 2.2.2--小心指针越界 2.2.3--指针变量不再使用时&am…...

git 多个提交记录合并为一个

1.场景 有时候用devops等平台测试问题,需要多次修改小的记录提交,但是最终我们在合并主干的时候不想留那么多乱七八糟的记录,就需要在此分支合并这些提交记录,再合并到主干。 2.交互式变基 2.1 确定要合并的提交范围 # 查看最近…...

AI视频生成的艺术:镜头语言

前言 AI视频生成技术正逐渐改变我们创作和消费视频内容的方式,各式各样的AI视频制作软件正在不断的涌现,比如可灵、即梦、runway等。虽然AI视频生成的交互方式(自然语言)极大的减少了我们创作视频的门槛,但要让AI正确理解并创造出符合我们期望的视频,我们可能还是需要了解…...

机器学习与深度学习

目录 一、机器学习 (一)机器学习的分类 1. 监督学习 2. 无监督学习 3. 强化学习 (二)机器学习的应用场景 二、深度学习 (一)深度学习的核心原理 (二)常见的深度学习模型 …...

数字孪生市场格局生变:中国2025年规模214亿,工业制造领域占比超40%

一、技术深度解析:数字孪生的核心技术栈与演进 1. 从镜像到自治:数字孪生技术架构跃迁 三维重建突破:LiDAR点云精度达2cm,无人机测深刷新频率5Hz,支撑杭州城市大脑内涝预警模型提前6小时预测。AI算法融合&#xff1a…...

数字孪生[IOC]常用10个技术栈(总括)

1. 什么是数字孪生? 数字孪生(Digital Twin) 是通过数字化技术对物理实体(如设备、系统或环境)进行高精度建模和实时映射的虚拟副本。其核心是通过 数据驱动 实现物理世界与虚拟世界的双向交互,支持实时监控…...

WPF主窗体子窗体关联方法

步骤: 1、创建WPF项目 2、设计主窗体,选定显示子窗体的区域(MainWindow.xaml) 3、在想要显示子窗体的区域填写如下代码(MainWindow.xaml) 4、创建子窗体 5、建立调用子窗体事件,下图一是load事件,也可以是…...

笔记本电脑实现网线内网 + Wi-Fi外网同时使用的配置方案

1、同时连接两个网络‌ 插入网线连接内网,确保内网IP地址正常获取(如10.143.88.x);连接Wi-Fi接入外网,确认可正常访问互联网(如网关为192.168.8.1)。 2、 记录关键网络参数‌ 内网网关&#…...

探讨关于智能体(Agent)结合 Dify、大语言模型(LLM)以及 Qwen-3 模型的项目或概念

1. Dify 的作用 Dify 是一个开源的 AI 框架,它可以帮助开发者快速搭建和部署 AI 应用。它可以作为一个基础架构,为智能体提供以下支持: 应用开发与部署:Dify 可以帮助开发者快速搭建智能体的前端和后端架构,包括用户界…...