Component之TFTP

  • 2019 年 11 月 11 日
  • 笔记

Trivial File Transfer Protocol,TCP/IP中的一种简单文件传输协议,通常基于UDP实现,端口号69。

TFTP分两部分:Server和Client。 不过比FTP简单的多,只提供文件的上传和下载功能。TFTP采用8位数据模式传输,传输模式有两种:8位的ASCII码模式-netascii,和8位的源数据格式-octet

Client(VxWorks) ->Server(Windows)

先来看看VxWorks如何做为Client来访问其它设备(例如Windows)的Server。

可以使用Workbench/Tornado提供的Tftp工具-Tftpd32.exe来做Server

设置一下Tftp Server的工作目录Current Directory;如果Windows设备有多个网卡,就选择与VxWorks设备相连接的那个Server interface

而做为Client的VxWorks,只需要包含TFTP Client组件就可以了

然后就可以在VxWorks里访问Windows的这个TFTP Server了

操作只有两种:put是上传,get是下载

在代码中操作的话,可以使用函数tftpXfer()或tftpCopy()

写个例子

在Tftp Server里放一个文件a.txt,testGet()把它下载到Client本地的x.txt,然后testPut()再把它上传到Server的b.txt

Client(VxWorks) ->Server(VxWorks)

VxWorks做Server呢?除了包含组件INCLUDE_IPTFTPS,还要设置一下Server的工作路径TFTPS_DIRS,例如(公众号 VxWorks567)使用VxWorks硬盘

启动两个VxWorks,分别做Server和Client。Client端使用get命令就可以从Server端下载文件了

如果要上传呢?有点不一样了。因为VxWorks这个Tftp Server的上传功能默认是关闭的

需要使用组件INCLUDE_IPCOM_SYSVAR_CMD的命令“sysvar set -c -o iptftps.allow.upload "enable"”来打开,可以用“sysvar list”来查看状态

然后在Client端再试试上传

Client(Windows) ->Server(VxWorks)

Windows做Client的话,就简单了。使用刚刚的Tftp工具即可

不过这个工具实在太简陋了,只能指定Server和File Name。

可以下载一个完整版的工具,功能会多一些

这正是:

简单传输协议,有个TFTP。

只有get/put,文件不能加密。

我是泰山,专注VX15年!

欢迎关注VxWorks567,

一起学习,共同进步!