What?!! 这么方便的文件传输方法你还不知道?

作为嵌入式开发程序猿,不可避免的经常需要从电脑、编译服务器和Linux开发板之间传输文件。Android有adb工具,不需要多说,本文程序猿小编给您介绍一种广泛应用于Linux的一种文件传输协议TFTP。

What?!! 这么方便的文件传输方法你还不知道?

TFTP简介

TFTP(Trivial File Transfer Protocol,简单文件传输协议):TFTP是一个传输文件的简单协议,绝大多数情况下基于UDP协议而实现,也不排除有部分TFTP协议是基于其它传输协议完成的。用来在客户机与服务器之间进行简单文件传输,提供不复杂、开销不大的文件传输服务。端口号为69。

TFTP用法

我们以Windows电脑端作为服务端,Linux作为客户端为例,具体设置如下:

01 服务端

服务端打开一个名为Tftpd32.exe的TFTP工具,选择Tftp Server按钮使其作为服务终端,如下图:

What?!! 这么方便的文件传输方法你还不知道?

说明:

CurrentDirectory: 当前服务端的路径,和客户端传输的文件都存储在这个路径下。包括客户端从服务端下载和上传的所有文件。此路径可以通过Browse按钮根据自己的情况设置。

Server interfaces:服务端传输数据网口IP地址,对于多个网口的设备,可以选择所需要传输数据网口对应的IP地址。

02 客户端(开发板)

一般情况下,Linux开发板都会带有busybox指令集,busybox中一般都集成有tftp命令,所以这就不需要我们在开发板客户端做任何设置。只需要在串口终端输入tftp即可使用,下图是小编开发板上的tftp信息:

What?!! 这么方便的文件传输方法你还不知道?

从上图可以看出,使用tftp命令传输文件时还是有一些参数的,具体常用参数的用法如下:

-g 表示下载文件(get)

-p 表示上传文件(put)

-l 表示本地文件名(local file)

-r 表示远程主机的文件名(remote file)

例如,我们要从小编服务端远程主机172.30.16.72上下载一个名为test.txt的文件,则应输入以下命令:

tftp -g -r test.txt 172.30.16.72

03 客户端(Linux服务器)

除了开发板,在一些Linux服务器上,我们也可以使用tftp命令来传输文件。请看小编以下操作截图:

What?!! 这么方便的文件传输方法你还不知道?

由上图可以看出,我们可以在Linux终端上输入tftp 172.30.16.72 这个命令,就会进入到tftp的操作,这时客户端和服务端之间就可以传输文件了,用get test.txt命令从服务端下载文件。同样,用put 命令将文件上传服务端。这就实现了文件的传输功能。

进入TFTP相关操作说明:

connect:连接到远程tftp服务器

mode:文件传输模式

put:上传文件

get:下载文件

quit:退出

verbose:显示详细的处理信息

tarce:显示包路径

status:显示当前状态信息

binary:二进制传输模式

ascii:ascii 传送模式

rexmt:设置包传输的超时时间

timeout:设置重传的超时时间

help:帮助信息

? :帮助信息

相关操作方法也可以通过在操作界面输入“?”或者“help”获取,如下图:

What?!! 这么方便的文件传输方法你还不知道?

TFTP优缺点

优点:

1、TFTP可用于UDP环境;比如当需要将程序或者文件同时向许多机器下载时就往往需要使用到TFTP协议。

2、TFTP代码所占的内存较小,这对于较小的计算机或者某些特殊用途的设备来说是很重要的(比如我们一些简单的Linux嵌入式设备),这些设备不需要硬盘,只需要固化了TFTP、UDP和IP的小容量只读存储器即可。

3、不需要验证客户端的权限,在局域网中调试设备时传输文件就减少了很多步骤。

缺点:

TFTP是一个传输文件的简单协议,此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录。

总结

在一些嵌入式局域网的软件调试过程中,我们可以用TFTP来传输我们调试过程中产生的文件,如一些临时验证的可执行文件,抓包文件,TFTP搭建传输环境简单,可以提高我们的调试效率。但是如果是一些比较大的文件并且是互联网传输的,小编我还是建议大家用FTP。

欢迎大家关注我们同名微信公众号“麻辣软硬件

”,一起交流技术相关话题!


分享到:


相關文章: