ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux——Linux系统编程之基于TFTP实现服务器与开发板间的文件传输实战总结

2020-12-17 22:03:10  阅读:310  来源: 互联网

标签:网段 IP 文件传输 开发板 Linux 服务器 TFTP


目录

0 引言

1 TFTP服务器搭建

1.1 TFTP基础

1.2 Ubuntu搭建TFTP服务器

1.3 测试TFTP服务器

2 开发板实现TFTP文件传输

2.1 同一网段

2.2 配置

2.3 客户端与服务器的通信


0 引言

我们前面总结的Linux字符设备、串口编程博文中,在虚拟机中编译得到可执行文件后,都是通过U盘连接开发板进行测试验证的,或者就是把可执行文件编译到最小系统中,再OTG烧写进开发板,这两种方法都比较麻烦,这里我们就提供一种简单方法,TFTP文件传输,PC机和开发板之间连接一根xx线即可。

1 TFTP服务器搭建

要实现服务器与开发板之间的TFTP文件传输,首先要在PC机虚拟机中搭建个Ubuntu服务器,开发板作为客户端。

1.1 TFTP基础

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,端口号为69。它基于UDP协议,专门为小文件传输设计,只能从服务器上获取文件,或者向服务器写入文件,不能列出目录,也不能进行认证。

优点缺点

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

2)TFTP代码所占的内存较小,非常适用于简单的Linux嵌入式设备,这些设备不需要硬盘,只需要固化了TFTP、UDP和IP的小容量只读存储器即可;

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

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

1.2 Ubuntu搭建TFTP服务器

1)安装xinted:apt-get install xinetd

Xinetd即extended internet daemon,是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务。Xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。原则上任何系统服务都可以使用xinetd,然而最适合的应该是那些常用的网络服务,并且这个服务的请求数目和频繁程度不会太高。像DNS和Apache就不适合采用这种方式,而像FTP、Telnet、SSH等就适合使用xinetd模式。

2)安装tftp和tftpd:apt-get install tftp tftpd

3)建立TFTP配置文件:sudo gedit /etc/xinetd.d/tftp,内容如下:

service tftp
{
		socket_type = dgram
		protocol 			= udp
		wait 				= yes
		user 				= root
		server 		= /usr/sbin/in.tftpd
		server_args = -s /var/tftpboot/
		disable 	= no
		per_source	= 11
		cps 				= 100 2
		flags 				= IPv4
}

4)建立TFTP服务器的目录,并设置访问权限:mkdir /var/tftpboot、chmod 777 /var/tftpboot

5)重启xinetd服务:sudo /etc/init.d/xinetd restart

1.3 测试TFTP服务器

在/var/tftpboot目录下建立个test测试文件,输入内容hello:

新开启一个终端,连接本机tftp服务器,获取test文件到当前目录下:

以上测试OK,搭建TFTP服务器成功。

2 开发板实现TFTP文件传输

2.1 同一网段

局域网中经常会出现“同一网段”这个概念,如果没有计算机基础,一般都会很蒙,所谓的同一网段,就是IP和子网掩码做与运算,结果相同就表示在同一网段,既可以进行局域网的通信。

虚拟机Linux系统查看IP:ifconfig

开发板最小系统查看IP:cat /etc/eth0-settings

由以上可知,两个IP不在同一个网段,所以要想进行通信,就需要进行配置。

2.2 配置

这里我们需要修改下开发板的默认IP,原来是192.168.1.230,但是修改成多少呢?既然是IP和和子网掩码255.255.255.0做与运算,只要IP的前三位一致就可以在一个网段了,具体最后一位怎么设置,我们要查看路由器LAN口设置的IP范围,一般路由器的地址都是192.168.0.1,网页中输入即可查看自己的路由器了。如下仅举例,说明可以设置的IP范围:

然后,通过超级终端修改开发板的IP即可,在/etc/eth0-setting中修改。

2.3 客户端与服务器的通信

开发板制作的 linux最小文件系统支持 TFTP 客户端命令,编译 Busybox 时默认是支持该命令的,设置完开发板IP后,测试与服务器的连接情况,首先网线连接开发板的网口到路由器上,然后输入命令:ping 服务器IP

下图是截图的演示案例图,出差中,板子不在手边,所以不能亲自演示截图分享了:)

以上,说明开发板和TFTP服务器间通信OK的,获取TFTP文件到开发板当前目录下的命令:tftp -g -l 文件名 -r 文件名 服务器IP

作于202012172155,已归档

———————————————————————————————————

本文为博主原创文章,转载请注明出处!

若本文对您有帮助,轻抬您发财的小手,关注/评论/点赞/收藏,就是对我最大的支持!

祝君升职加薪,鹏程万里!

标签:网段,IP,文件传输,开发板,Linux,服务器,TFTP
来源: https://blog.csdn.net/w464960660/article/details/111038349

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有