合宙Air780E|FTP|内网穿透|命令测试|LuatOS-SOC接口|官方demo|学习(18):FTP命令及应用
1、FTP服务器准备
本机为win11系统,利用IIS搭建FTP服务器。
搭建方式可参考博文:windows系统搭建FTP服务器教程
windows系统搭建FTP服务器教程_程序员路遥的博客-CSDN博客_windows服务器安装ftp
设置完成后,测试FTP(已正常访问,测试ls列出服务器上的文件):

外网IP映射至本地FTP服务器(采用小米球做内网端口映射)。

可参考
- 小米球官网:Ngrok国内免费服务器-小米球ngrok
- 博文:小米球外网映射本地tomcat
小米球外网映射本地tomcat_lanren312的博客-CSDN博客
2、FTP Demo main.c代码及解析:
print(ftp.login(nil,"ngrok2.xiaomiqiu123.top",*****,"m***********n","***********").wait())print(ftp.command("NOOP").wait()) --此命令不产生什么实际动作,它仅使服务器返回OK。print(ftp.command("SYST").wait()) --FTP提供SYST和STAT命令。其中,SYST命令用来获取服务器的操作系统,--STAT用于获取当前程序和目录信息。这两个命令的信息默认不显示。--NMAP的ftp-syst脚本通过向FTP服务器发送这两个命令,并解析返回信息,而获取相关信息,如操作系统类型、FTP配置信息等。print(ftp.command("TYPE I").wait()) --设置编码类型为Iprint(ftp.command("PWD").wait()) --返回指定 FTP 连接的当前目录名称print(ftp.command("MKD QWER").wait()) --创建路径 QWERprint(ftp.command("CWD /QWER").wait()) --改变工作目录,即改变当前所在位置至/QWER(服务器分配的文件夹路径)print(ftp.command("CDUP").wait()) --把当前目录改变为 FTP 服务器上的父目录print(ftp.command("RMD /QWER").wait()) --删除路径 QWER(QWER为空状态)sys.wait(1000)--錯誤提示:net_lwip_tcp_err_cb 637:adapter 1 socket 3 not closing, but error -13 待报issue;--print(ftp.command("LIST").wait()) --目录列表工具,能够列出FTP、本地磁盘上的目录内容,输出格式可以是树型图,也可以是URL、HTML、带格式文本文件等形式--提示false,pull不成功,原因待查!print(ftp.pull("/1222.txt","/1222.txt").wait()) --FTP文件下载(服务器中必须先有1222.txt)local f = io.open("/1222.txt", "r")if f thenlocal data = f:read("*a")f:close()log.info("fs", "writed data", data)elselog.info("fs", "open file for read failed")endprint(ftp.command("DELE /12222.txt").wait()) --删除服务器上的文件print(ftp.push("/1222.txt","/12222.txt").wait()) --上传文件1222-1.txt至服务器根目录,改名为12222.txtprint(ftp.close().wait()) --关闭FTP服务器log.info("meminfo", rtos.meminfo("sys")) --显示内存情况
log文件:
[2023-02-23 22:23:02.699] DBG: ap log port COM13打开成功[2023-02-23 22:23:02.724] DBG: soc log port COM11打开成功[2023-02-23 22:23:02.863][000000000.229] I/pm pm mode 1[2023-02-23 22:23:02.866][000000000.230] I/pm poweron: Power/Reset[2023-02-23 22:23:02.869][000000000.230] I/main LuatOS@EC618 base 22.12 bsp V1103 32bit[2023-02-23 22:23:02.873][000000000.230] I/main ROM Build: Feb 3 2023 14:22:10[2023-02-23 22:23:02.878][000000000.239] D/main loadlibs luavm 204792 14152 14152[2023-02-23 22:23:02.884][000000000.239] D/main loadlibs sys 300416 52896 53088[2023-02-23 22:23:02.889][000000000.448] self_info 113:model Air780E imei 861551056******[2023-02-23 22:23:03.249][000000000.917] D/mobile CSCON 1[2023-02-23 22:23:04.290][000000001.943] D/mobile NETIF_LINK_ON -> IP_READY[2023-02-23 22:23:04.292][000000001.947] D/DNS ngrok2.xiaomiqiu123.top state 0 id 1 ipv6 0 use dns server2, try 0[2023-02-23 22:23:04.328][000000001.984] I/DNS dns all done ,now stop[2023-02-23 22:23:04.721][000000002.376] true[2023-02-23 22:23:04.814][000000002.484] 200 NOOP command successful.[2023-02-23 22:23:04.925][000000002.586] 215 Windows_NT[2023-02-23 22:23:05.036][000000002.704] 200 Type set to I.[2023-02-23 22:23:05.177][000000002.837] 257 "/" is current directory.[2023-02-23 22:23:05.288][000000002.944] 257 "QWER" directory created.[2023-02-23 22:23:05.400][000000003.054] 250 CWD command successful.[2023-02-23 22:23:05.494][000000003.160] 250 CDUP command successful.[2023-02-23 22:23:05.602][000000003.268] 250 RMD command successful.[2023-02-23 22:23:12.871][000000010.528] net_lwip_tcp_err_cb 637:adapter 1 socket 1 not closing, but error -13[2023-02-23 22:23:23.382][000000021.042] D/mobile CSCON 0[2023-02-23 22:23:28.772][000000026.436] D/mobile CSCON 1[2023-02-23 22:23:39.035][000000036.693] D/mobile CSCON 0[2023-02-23 22:23:42.982][000000040.636] false[2023-02-23 22:23:42.986][000000040.642] I/user.fs writed data [2023-02-23 22:23:43.027][000000040.695] D/mobile CSCON 1[2023-02-23 22:23:43.886][000000041.552] 550-Data channel timed out.Win32 error: The network connection was aborted by the local system.Error details: Data channel timed out.550 End550-The system cannot find the file specified.Win32 error: The system cannot find the file specified.Error details: File system returned an error.550 End[2023-02-23 22:23:43.995][000000041.662] E/ftp data_netc already create[2023-02-23 22:23:43.999][000000041.664] false[2023-02-23 22:23:44.104][000000041.769] 221 Goodbye.[2023-02-23 22:23:44.106][000000041.770] I/user.meminfo 300416 59128 63812
PS:ftp - ftp 客户端函数说明
ftp.login(adapter,ip_addr,port,username,password)
FTP客户端
参数
| 传入值类型 | 解释 |
| int | 适配器序号, 只能是socket.ETH0, socket.STA, socket.AP,如果不填,会选择平台自带的方式,然后是最后一个注册的适配器 |
| string | ip_addr 地址 |
| string | port 端口,默认21 |
| string | username 用户名 |
| string | password 密码 |
| bool/table | 是否为ssl加密连接,默认不加密,true为无证书最简单的加密,table为有证书的加密 |
返回值
| 返回值类型 | 解释 |
| bool/string | 成功返回true 失败返回string |
例子
ftp_login = ftp.login(nil,"xxx")
ftp.command(cmd)
FTP命令
参数
| 传入值类型 | 解释 |
| string | cmd 命令 目前支持:NOOP SYST TYPE PWD MKD CWD CDUP RMD DELE LIST |
返回值
| 返回值类型 | 解释 |
| string | 成功返回true 失败返回string |
例子
print(ftp.command("NOOP").wait())
print(ftp.command("SYST").wait())
print(ftp.command("TYPE I").wait())
print(ftp.command("PWD").wait())
print(ftp.command("MKD QWER").wait())
print(ftp.command("CWD /QWER").wait())
print(ftp.command("CDUP").wait())
print(ftp.command("RMD QWER").wait())
print(ftp.command("DELE /1/12222.txt").wait())
ftp.pull(local_name,remote_name)
FTP文件下载
参数
| 传入值类型 | 解释 |
| string | local_name 本地文件 |
| string | remote_name 服务器文件 |
返回值
| 返回值类型 | 解释 |
| bool/string | 成功返回true 失败返回string |
例子
ftp.pull("/1222.txt","/1222.txt").wait()
ftp.push(local_name,remote_name)
FTP文件上传
参数
| 传入值类型 | 解释 |
| string | local_name 本地文件 |
| string | remote_name 服务器文件 |
返回值
| 返回值类型 | 解释 |
| bool/string | 成功返回true 失败返回string |
例子
ftp.push("/1222.txt","/1222.txt").wait()
ftp.close()
FTP客户端关闭
参数
无
返回值
| 返回值类型 | 解释 |
| bool/string | 成功返回true 失败返回string |
例子
ftp.close().wait()
待解决问题:
1、 --錯誤提示:net_lwip_tcp_err_cb 637:adapter 1 socket 3 not closing, but error -13 待报issue;
--print(ftp.command("LIST").wait()) --目录列表工具,能够列出FTP、本地磁盘上的目录内容,输出格式可以是树型图,也可以是URL、HTML、带格式文本文件等形式
2、执行pull时,--提示false,pull不成功,原因待查!
print(ftp.pull("/1222.txt","/1222.txt").wait()) --FTP文件下载
相关文章:
合宙Air780E|FTP|内网穿透|命令测试|LuatOS-SOC接口|官方demo|学习(18):FTP命令及应用
1、FTP服务器准备 本机为win11系统,利用IIS搭建FTP服务器。 搭建方式可参考博文:windows系统搭建FTP服务器教程 windows系统搭建FTP服务器教程_程序员路遥的博客-CSDN博客_windows服务器安装ftp 设置完成后,测试FTP(已正常访问…...
大规模 IoT 边缘容器集群管理的几种架构-4-Kubeedge
前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介大规模 IoT 边缘容器集群管理的几种架构-1-RancherK3s大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad大规模 IoT 边缘容器集群管理的几种架构-3-Portainer 📚️Reference…...
Spring底层核心原理解析
Spring简介 ClassPathXmlApplicationContext context new classPathXmlApplicationContext("spring.xml"); UserService userService (UserService) context.getBean("userService"); userService.test();上面一段代码是我们开始学习spring时看到的&…...
OpenStack手动分布式部署Glance【Queens版】
目录 Glance简介 1、登录数据库配置(在controller执行) 1.1登录数据库 1.2数据库里创建glance 1.3授权对glance数据库的正确访问 1.4退出数据库 1.5创建glance用户密码为000000 1.6增加admin角色 1.7创建glance服务 1.8创建镜像服务API端点 2、安装gla…...
谈一谈你对View的认识和View的工作流程
都2023年了,不会还有人不知道什么是View吧,不会吧,不会吧。按我以往的面试经验来看,View被问到的概率不比Activity低多少哦,个人感觉View在Android中的重要性也和Activity不相上下,所以这篇文章将介绍下Vie…...
Redis集群的脑裂问题
集群脑裂导致数据丢失怎么办? 什么是脑裂? 先来理解集群的脑裂现象,这就好比一个人有两个大脑,那么到底受谁控制呢? 那么在 Redis 中,集群脑裂产生数据丢失的现象是怎样的呢? 在 Redis 主从架…...
互斥信号+任务临界创建+任务锁
普通信号量 1、信号量概念 2、创建信号量函数 3、互斥信号量 创建互斥信号量函数 等待信号量函数 释放互斥信号量 4、创建任务临界区 5、任务锁 任务上锁函数 编辑 任务结束函数 效果 普通信号量 1、信号量概念 信号量像是一种上锁机制,代码必须获…...
Elasticsearch7.8.0版本进阶——文档搜索
目录一、文档搜索的概述二、倒排索引不可变的优点三、倒排索引不可变的优点一、文档搜索的概述 早期的全文检索会为整个文档集合建立一个很大的倒排索引并将其写入到磁盘。 一旦新的索引就绪,旧的就会被其替换,这样最近的变化便可以被检索到。倒排索引被…...
spring security权限问题
org.springframework.boot spring-boot-starter-security 引入jar extends WebSecurityConfigurerAdapter 用来配置登陆和权限 configure(HttpSecurity http) 覆盖这个方法 //配置授权相关的 .authorizeRequests () //任何请求 .anyRequest() //要求授权后可以访问 .authen…...
mysql 8.0.22安装
mysql8.0.22安装1. 配置my.ini2. 添加环境变量3. 安装mysql3.1 mysql初始化3.2 安装mysql服务3.3 启动mysql服务4. 连接数据库修改连接数据库的密码前提:已经从官网下载mysql8.0.22安装包并解压(下载地址:https://dev.mysql.com/downloads/in…...
Mysql系列:Mysql5.7编译安装
系统环境:Centos7 1:下载mysql源码包 https://dev.mysql.com/downloads/mysql/5.7.html downloads 选择MySQL Community Server>source_code>Generic Linux (Architecture Independent), Compressed TAR Archive -> 选择需要的mysql版本&…...
设备树(配合LED驱动说明)
目录 一、起源 二、基本组成 三、基本语法 四、特殊节点 4.1 根节点 4.2 /memory 4.3 /chosen 4.4 /cpus 多核CPU支持 五、常用属性 5.1 phandle 5.2 地址 --------------- 重要 5.3 compatible --------------- 重要 5.4 中断 --------------- 重要 5.5 …...
(二十六)大白话如何从底层原理解决生产的Too many connections故障?
今天我们继续讲解昨天的那个案例背景,其实就是经典的Too many connections故障,他的核心就是linux的文件句柄限制,导致了MySQL的最大连接数被限制,那么今天来讲讲怎么解决这个问题。 其实核心就是一行命令: ulimit -H…...
ASEMI高压MOS管60R380参数,60R380特征,60R380应用
编辑-Z ASEMI高压MOS管60R380参数: 型号:60R380 漏极-源极电压(VDS):600V 栅源电压(VGS):20V 漏极电流(ID):11A 功耗(PD&#x…...
Python期末试卷
《Python程序设计基础》期末试题 班级 学号 姓名 一.选择题(须知:答案写到下方的表格中,其它一律无效.每题2分,共40分) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 1.在Python交互…...
Linux | 网络通信 | http协议介绍 | cookie策略讲解
文章目录url统一资源定位符http协议介绍GET vs POSThttp状态码http常见headercookie session上篇博客定制了一个协议,该协议用来进行简单的计算,其包含了数据的序列化和反序列化,编码和解码的定制,并且该协议基于TCP通信…...
招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…...
winapi获取和修改camera raw界面元素数据
camera raw 界面如下: 需求就是根据 windows api 来操作界面右边的色温、色调、曝光等属性,进而对图片进行调色。根据 spy 捕获的窗口信息,理论上是可以拿到并修改值的。 根据 class 可以先拿到窗口句柄: #define CAMERA_RAW_CLA…...
C++问答汇总_2023自用
C是一种通用编程语言,具有高级抽象、强类型和编译性能等特点。C语言具有许多特性,包括面向对象编程、模板、多态、运算符重载等等。它广泛应用于各种领域,如系统软件、嵌入式系统、游戏开发、科学计算等等。 1、C11相对于C98的新特性…...
IDA 实战--(2)熟悉工具
布局介绍 软件启动后会 有几个选项,一般直接选择Go 即可 之后的工作台布局如下 开始分析 分析的第一个,将PE 文件拖入工作区 刚开始接触,我们先保持默认选项,其它选项后面会详细讲解,点击OK 后,等待分析…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
React---day11
14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store: 我们在使用异步的时候理应是要使用中间件的,但是configureStore 已经自动集成了 redux-thunk,注意action里面要返回函数 import { configureS…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
