合宙Air780E|FTP|内网穿透|命令测试|LuatOS-SOC接口|官方demo|学习(18):FTP命令及应用
创始人
2024-05-26 16:01:30
0

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文件下载

相关内容

热门资讯

emui 安卓系统对应关系,E... 你有没有发现,每次打开你的华为手机,那个界面看起来是不是特别顺眼?那是因为华为的EMUI系统,它就像...
永诺安卓系统相机,功能解析与使... 你有没有发现,手机拍照已经成为我们生活中不可或缺的一部分?而在这其中,永诺安卓系统的相机功能可是相当...
tinder安卓版系统错误,揭... 最近在使用Tinder安卓版的时候,你是不是也遇到了一些让人头疼的系统错误呢?别急,今天就来和你聊聊...
htc安卓系统怎么更新系统,轻... 亲爱的HTC安卓用户们,你是不是也和我一样,时不时地想给手机来个“大变身”,让它焕然一新呢?没错,今...
安卓最新发布系统,颠覆性更新与... 你知道吗?最近安卓系统又来了一次大变身,这可是科技圈里的大事哦!安卓最新发布的系统,简直就像是一个全...
华为不升级安卓系统,开启自主操... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是华为决定不再升级安卓系统!这可不是一个小决定,它背...
安卓保护系统停止运行,紧急排查... 亲爱的手机用户们,你们有没有遇到过这样的情况:手机突然间变得不正常了,安卓保护系统竟然停止运行了?这...
安卓系统记录仪,智能行车安全守... 你有没有想过,开车的时候,那些瞬间发生的事情,就像电影里的精彩片段,一闪而过,却让人回味无穷?别急,...
安卓13系统怎样升级,全面解析... 你有没有发现,你的安卓手机最近是不是有点儿“蔫儿”了?别急,别急,我来告诉你怎么给它来个“大变身”—...
安卓手机进去系统花屏,安卓手机... 手机屏幕突然花屏了,是不是瞬间感觉整个世界都变得不美好了呢?别急,今天就来和你聊聊安卓手机进入系统时...
安卓手机 系统怎么更新,体验最... 亲爱的手机控们,你是不是也和我一样,时不时地想给安卓手机来个“美容”大变身呢?没错,说的就是系统更新...
妈妈手机推荐安卓系统,安卓系统... 亲爱的妈妈们,是不是在为给家里的宝贝挑选一款合适的手机而烦恼呢?别急,今天我就来给你详细介绍一下几款...
oppo安卓版系统设置,全面解... 亲爱的手机控们,你是不是也和我一样,对OPPO安卓版系统的设置充满了好奇?想要让你的OPPO手机更加...
安卓系统是什么cp,CP架构下... 你有没有想过,你的手机里那个默默无闻的安卓系统,其实就像是一个超级贴心的CP(情侣搭档)呢?没错,就...
系统垃圾清理大师 安卓,安卓手... 手机里的垃圾文件是不是让你头疼不已?别急,今天我要给你介绍一位安卓系统里的“清洁小能手”——系统垃圾...
安卓系统分为几层,安卓系统分层... 你知道吗?安卓系统,这个陪伴我们手机生活的“小助手”,其实它内部结构可是相当复杂的呢!今天,就让我带...
系统最像苹果的安卓,揭秘最像苹... 你有没有发现,现在的安卓手机越来越像苹果了?没错,就是那个以简洁设计和流畅体验著称的苹果。今天,就让...
安卓更新13系统游戏,性能升级... 你知道吗?最近安卓系统又来了一次大变身,那就是安卓13系统!这次更新可是带来了不少惊喜,尤其是对那些...
安卓系统开机出错了,安卓系统开... 手机突然开不了机了,这可怎么办?别急,让我来帮你分析一下安卓系统开机出错的那些事儿。一、安卓系统开机...
vovg是安卓系统吗,安卓系统... 你有没有听说过Vovg这个操作系统?最近,这个名词在数码圈里可是引起了不小的热议呢!很多人都在问,V...