c语言实现tftp协议下载,简单文件传送协议(TFTP)C语言实现.pdf

No.3

第12卷第3期 +,,。 V01.12

20lo年3月 鬣钎雾喾 Mar.2010

doi:lO.3969/j.issn.1563--4795.2010.03.018

谢永悠

(西南交通大学信息科学与技术学院,四川 成都610031)

摘 要:’rFTP(简单文件传送协议)是TCP/TP协议族中用来在客户机与服务器之间进行简单

文件传输的协议。文中给出了在visualC++6.0开发平台上,用C语言按照聊协议在服务器

跟多客户端之间进行文件传榆的实现方法。该方法可以传输超过32MB的文件。

关键词:Tnm:server;client;超时重传

0引言 1 系统所要解决的问题

利用TFrP简单文件传输协议可以实现Ⅱ’rP 在唧文件的传输过程中,通常都要求有一

server与Tn’Pclient之间的文件传输.包括多客定的容错能力。大部分的错误都会导致连接中

户的下载和上传请求。 断。假如错误由一个错误的数据包引起.则这个

如果客户端发送的是下载请求,那么,服务 包将不被确认,也不会被重新发送,因此,另一

器将根据客户端发过来的报文。解析出文件的路 方将无法接收到。如果错误包丢失,则将使用超

径和文件名,并且根据解析出来的文件名,开始 时机制。一般的错误主要是由三种情况引起:一

读文件并构造报文。然后再经过获取客户端发过 是不能满足请求;二是收到的数据包内容错误,

来的端口号,把DATA报文发送给客户端;如果而这种错误又不能由延时或重发解释;三是对需

客户端发送的是上传请求,那么,服务器端也必 要资源的访问丢失(如硬盘满)。

须解析出文件名及要保存的路径。若满足条件, 椰只在一种情况下不中断连接,这种情况

则发送ACK给客户端以确认已经接受客户端的请 是源端口不正确,在这种情况下。指示错误的包

求,然后等待客户的DATA报文。客户端接收会被发送到源机。事实上,Ⅱ耶协议的限制很

ACK后,就可开始发送数据报文。服务器开始解 多.这些都是为了实现起来比较方便而进行的。

析报文。并将其写到指定的路径及文件中。

任何传输请求都来自一个读取或写入文件的 2系统实现

请求,这个请求也是连接请求。如果服务器批准

2.1输入模块

此请求,则服务器将打开连接,数据以定长512

字节传输。每个数据包一般都含有一块数据,服 输入模块可实现输入命令的接收、判断和容

务器发出下一个数据包以前.必须得到客户对上 错处理,负责接收客户的输入信息并解析命令。

一个数据包的确认。如果一个数据包的大小小于

512字节。则表示传输结束。如果数据包在传输 供其他模块读取。

过程中丢失.则发出方会在超时后重新传输最后

一个未被确认的数据包。通信的双方都是数据的 接收客户的输入。再把客户输入的命令、文件

发出者与接收者,其中一方传输数据接收应答, 名、主机的ip地址保存到结构体中。其实现代码

另一方发出应答接收数据。 如下:

struct p存放最终输入

typedefinput

命令的结构体木/

收稿日期:2009—10—21

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值