打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Component之FTP

File Transfer Protocol,文件传输协议,是一种应用层协议。

还记得TCP/IP模型和OSI模型吗^_^


FTP分两部分:Server和Client。 Server监听网络上其它设备(Client)的连接请求;Client连接到Server后,可以操作Server的文件,例如上传、下载、改名、删除等。VxWorks既支持Server,也支持Client。

先来看看FTP Server - INCLUDE_IPFTPS

首先找到VxWorks的一个存储设备


有个硬盘分区叫'/ata0:1',就用它了来存放FTP文件吧

包含FTP Server的组件 INCLUDE_IPFTPS,并指定参数 FTPS_INITIAL_DIR


编译并启动VxWorks,可以看到 FTP Server 启动了


先确认一下VxWorks的IP地址


在Windows端,登录这个Server试试


可以看到,不需要用户名和密码就登录成功了。

换个图形化的客户端工具试试,例如免费的FileZilla,也是没有问题的

安全起见,我们还是加上用户名和密码吧: INCLUDE_SECURITY

在VxWorks Development Shell 中,使用工具 vxencrypt 来转换密码


例如输入'password'作为密码明文,得到随机Salt值和哈希加密后的密码密文,将其填入对应的组件中


然后build-reboot,再试试


这次就得输入用户名和密码了

图形化工具也一样

然后可以试试上传、下载、改名、删除等操作。

接下来咱们看看VxWorks如何做为 Client 来访问其它设备的 Server。


包含了这个 INCLUDE_IPFTPC 组件后,在 VxWorks 中就可以调用相关的函数来进行FTP操作了,主要函数有两个:

ftpXfer() - 初始化FTP连接


ftpCommand() - 发送FTP命令,并接收返回的状态


常用的cmd有'RETR'和'STOR'。全部命令如下图


返回状态主要有


另外,还有一个 ftpReplyGet() 可以用来接收返回的状态,返回值与 ftpCommand() 也是一样的

咱们来试试VxWorks做为 FTP Client 下载文件

先在Windows端创建一个文件,例如 d:/software/a.txt,里面随便写点


看一下Windows的IP


Windows端启动一个 FTP Server,例如风河默认提供的WFTPD,设置 User Name、Password、Home Directory

 

启动VxWorks,先声明两个fd变量


使用函数ftpXfer()登录Windows的 FTP Sverver,并准备下载文件

ftpXfer()返回值为0,表示连接成功了。

分配一块内存,用于存放文件


使用read()下载文件,直到文件尾部,即read()返回0

然后使用ftpCommand()退出FTP连接,并关闭fd


返回值为2,就表示FTP_COMPLETE了

把'RETR'改为'STOR'就是上传文件了


可以看到Server端的文件被修改了

最后还有一个小惊喜:VxWorks的cmd命令行支持FTP操作了

INCLUDE_IPFTP_CMD


启动VxWorks后,先在VxWorks的当前目录里随便找一个文件


然后在VxWorks的CMD里进入FTP模式


运行help,可以看到CMD支持的所有FTP命令


用Windows的IP当参数,登录Windows的 FTP Server


试试下载文件


试试上传文件


怎么样,挺方便的吧

这正是:

文件传输有协议,英文就叫F T P.

如若当作服务器,用户登录可加密.

同时也是客户端,函数参数很齐全.

还有Shell CMD,诸多命令可代替.

我是泰山,专注VX14年!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
windows server 2016 搭建FTP服务器
FTPclient上传ftp文件windows上可以,linux上不行
windows下利用cmd开启3389端口
开始→运行(cmd)命令大全 雨林木风交流论坛
怎么建立FTP服务器?
DOS命令 DOS批处理 ECHO 系统变量
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服