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

合宙Air780E|FTP|内网穿透|命令测试|LuatOS-SOC接口|官方demo|学习(18):FTP命令及应用

1、FTP服务器准备

本机为win11系统,利用IIS搭建FTP服务器。

搭建方式可参考博文:windows系统搭建FTP服务器教程

windows系统搭建FTP服务器教程_程序员路遥的博客-CSDN博客_windows服务器安装ftp

设置完成后,测试FTP(已正常访问,测试ls列出服务器上的文件):

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

 可参考

  1. 小米球官网:Ngrok国内免费服务器-小米球ngrok
  2. 博文:小米球外网映射本地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为有证书的加密
server_cert 服务器ca证书数据
client_cert 客户端ca证书数据
client_key 客户端私钥加密数据
client_password 客户端私钥口令数据

返回值

返回值类型

解释

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通信&#xf…...

招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…...

winapi获取和修改camera raw界面元素数据

camera raw 界面如下: 需求就是根据 windows api 来操作界面右边的色温、色调、曝光等属性,进而对图片进行调色。根据 spy 捕获的窗口信息,理论上是可以拿到并修改值的。 根据 class 可以先拿到窗口句柄: #define CAMERA_RAW_CLA…...

C++问答汇总_2023自用

C是一种通用编程语言,具有高级抽象、强类型和编译性能等特点。C语言具有许多特性,包括面向对象编程、模板、多态、运算符重载等等。它广泛应用于各种领域,如系统软件、嵌入式系统、游戏开发、科学计算等等。 1、C11相对于C98的新特性&#xf…...

IDA 实战--(2)熟悉工具

布局介绍 软件启动后会 有几个选项,一般直接选择Go 即可 之后的工作台布局如下 开始分析 分析的第一个,将PE 文件拖入工作区 刚开始接触,我们先保持默认选项,其它选项后面会详细讲解,点击OK 后,等待分析…...

Deep Unsupervised Learning using Nonequilibrium Thermodynamics论文翻译学习

Deep Unsupervised Learning using Nonequilibrium Thermodynamics Author: Jascha Sohl-Dickstein Link: http://proceedings.mlr.press/v37/sohl-dickstein15.pdf Score: ⭐️⭐️⭐️⭐️⭐️ Status: Done Type: Academic Journal 备注: 首篇扩散模型论文 A central prob…...

使用Autoware标定工具包联合标定相机和激光雷达

前面文章介绍了,安装autoware标定工具包、ros驱动usb相机、robosense-16线激光雷达的使用,本文记录使用Autoware标定工具包联合标定相机和激光雷达的过程。1.ros驱动相机,启动相机;启动激光雷达2.联合录制bag包rosbag record -a 参…...

了解线程安全

线程安全是多线程的重点和难点。 线程安全概念 线程安全:在多线程的各种随机调度顺序下,代码没有bug,都能够符合预期的方式来执行,此时认为线程安全 线程不安全:如果在多线程随机调度下代码出现bug,此时…...

【git】git版本控制

目录 1.在合适的位置打开bush,创建仓库 2.检查:跳转到当前文件夹,显示当前文件夹的相对路径 3.初始化 4.创建一个文本文件readme.txt 5.手动向readme文件中添加一些内容 6.把文件添加到暂存区 7.把文件提交到git仓库 8.手动修改readme.txt文件 9.查看当前…...

模电学习7. 三极管特性曲线与静态工作点

模电学习7. 三极管特性曲线与静态工作点一、三极管的伏安特性曲线1. 三极管的伏安特性曲线2. 三极管的静态工作点二、合适的静态工作点选择1. 合适静态工作点条件2. 静态工作点的确定三、使用立创EDA仿真查看静态工作点1. 搭建如下图所示测试电路2. 点击菜单仿真、仿真设置3. 运…...

LeetCode题解:633. 平方数之和,双指针,JavaScript,详细注释

原题链接: https://leetcode.cn/problems/sum-of-square-numbers/ 解题思路: a和b一定是000到c\sqrt cc​之间的某个值。将a的初始值设为0。b的初始值设为c\sqrt cc​,b必须为整数。a和b向中间逼近,查找满足条件的值。由于a和b是…...

Keil编译头文件iec_std_functions.h错误解决

Keil 编译IEC61131-3库,头文件,大量出现以下错误; cast to type ? is not allowed compiling resource1.c... ..\PLC\rts\matiec\lib\C\iec_std_functions.h(192): error: #119: cast to type "TIME" is not allowed…...

2022 赣育杯 CTF --- Crypto Lost_N wp

文章目录前言题目解题过程解题代码前言 这是去年江西省赛一道有点小坑的密码题,当时没做出来,今天回想起来重新做一下并且记录一下。 题目 Lost_N.py import gmpy2 from Crypto.Util.number import * # part1 flag bSangFor{} d getPrime(435) cou…...

【趋势分析方法三】MATLAB代码实现TFPW-MK检验

目前水文时间序列趋势分析的方法很多,主要分为参数检验和非参数检验两大类: 参数检验中常用的有线性回归法、滑动平均法、累积距平法等非参数检验则主要包括Mann-Kendal(MK)法和 Spearman 秩次相关法等 虽然从理论上讲&#xff…...

一文学会 Spring 整合 MyBatis

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...