合宙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 后,等待分析…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...