一种两线程ftp的传输方法及系统技术方案

技术编号:11707419 阅读:100 留言:0更新日期:2015-07-09 14:14
本发明专利技术提供了一种两线程ftp的传输方法及系统,该方法包括:将原文件的所有字节按从最后一个数据到第一个数据的顺序进行排列,得到反序文件;第一线程从所述原文件的第一个数据开始读取所述原文件;第二线程从所述反序文件的第一个数据开始读取所述反序文件;判断所述第一线程和所述第二线程读取的文件数据之和是否大于等于所述原文件的大小,当所述读取的数据之和大于等于所述原文件的大小时,停止所述第一线程和第二线程;将所述第一线程和所述第二线程读取的文件数据组合成传输文件。本发明专利技术最大限度地节约了客户端的CPU资源,控制过程简单,避免频繁切换下载位置以及REST指令的调用,实现两线程ftp的快速传输。

【技术实现步骤摘要】

本专利技术涉及因特网文件传输协议应用
,尤其涉及一种两线程ftp的传输方法及系统
技术介绍
文件传输协议ftp (File Transfer Protocol)是当前网络服务重要的应用之一,它实现了可靠且有效传输数据的功能;同时,ftp的具有另一项突出的优势:只要进行文件传输的系统都支持ftp协议,就可以方便地在不同类型的计算机之间进行文件传输,使用户不会因为各类主机文件存储器系统的差异而受影响。因此,ftp —直是Internet上广泛使用的服务。传统的两线程ftp下载和多线程的ftp下载方法是类似的,即采用如下方案实现文件的下载:第一个线程从文件开始位置下载,第二个线程通过rest指令调整下载起始位置,从文件中间某一个位置开始下载。专利技术人在实现本专利技术过程中,发现现有技术中至少存在以下问题:现有技术在有些ftp服务器不支持REST指令,特别是一些以前部署的传统的ftp服务器,这种情况下,两线程下载就无法实现了。对于支持REST指令的服务器,由于两个线程下载的速度常常有一定差别,有一个先下载完,下载完之后,这个线程也不能闲着,只能重新通过计算,从未下载部分中寻找一个合适的位置,然后在此位置再开始下载,待一定时间后,这两个线程中又会有一个先完成任务,这个先完成任务的,又需要通过计算,调整位置,再开始下载,控制过程比较复杂。由于每次从ftp服务器获取到的,都是多个字节,因此每次下载调整位置前,一般都多传输了一些字节,造成资源浪费。例如,现在只差一个字节就需要调整位置了了,可是服务器一下穿过来100个字节,进而造成99个字节的浪费。【专
技术实现思路
】鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决或者减缓上述问题的两线程ftp的传输方法和相应的两线程ftp的传输系统。根据本专利技术的一个方面,提供了一种两线程ftp的传输方法,该方法包括:将原文件的所有字节按从最后一个数据到第一个数据的顺序进行排列,得到反序文件;第一线程从所述原文件的第一个数据开始读取所述原文件;第二线程从所述反序文件的第一个数据开始读取所述反序文件;判断所述第一线程和所述第二线程读取的文件数据之和是否大于等于所述原文件的大小,当所述读取的数据之和大于等于所述原文件的大小时,停止所述第一线程和第二线程;将所述第一线程和所述第二线程读取的文件数据组合成传输文件。其中,所述方法还包括:为包括至少一个原文件的原文件目录创建一个对应的反序文件目录;将与所述至少一个原文件一一对应的至少一个反序文件存储在所述反序文件目录下。其中,所述将所述第一线程和所述第二线程读取的文件数据组合成传输文件,具体包括:创建一个和所述原文件同样大小的传输文件;将所述第一线程读取的文件数据中的第一个数据对应所述传输文件的第一个数据,依次以所述第一线程读取的文件数据覆盖所述传输文件的第一部分;将所述第二线程读取的文件数据中的第一个数据对应所述传输文件的最后一个数据,依次以所述第二线程读取的文件数据覆盖所述传输文件中未被所述第一线程读取的文件数据所覆盖的第二部分。其中,所述方法还包括:将所述第一线程和所述第二线程读取的文件数据缓存在内存中,当所述内存中缓存的文件数据到达预设数据量或数据传输完成时,将所述内存中缓存的文件数据进行所述传输文件的覆盖,释放占用的内存。其中,所述原文件和所述反序文件部署在不同的磁盘上。根据本专利技术的另一个方面,提供了一种两线程ftp的传输系统,该系统包括:反序文件生成单元,用于将原文件的所有字节按从最后一个数据到第一个数据的顺序进行排列,得到反序文件;第一线程读取单元,用于第一线程从所述原文件的第一个数据开始读取所述原文件;第二线程读取单元,用于第二线程从所述反序文件的第一个数据开始读取所述反序文件;判断单元,用于判断所述第一线程和所述第二线程读取的文件数据之和是否大于等于所述原文件的大小,当所述读取的数据之和大于等于所述原文件的大小时,停止所述第一线程和第二线程;传输文件生成单元,用于将所述第一线程和所述第二线程读取的文件数据组合成传输文件。 其中,所述系统还包括:反序文件目录创建单元,用于为包括至少一个原文件的原文件目录创建一个对应的反序文件目录;存储单元,用于将与所述至少一个原文件--对应的至少一个反序文件存储在所述反序文件目录下。其中,所述传输文件生成单元包括:传输文件创建模块,用于创建一个和所述原文件同样大小的传输文件;第一覆盖模块,用于将所述第一线程读取的文件数据中的第一个数据对应所述传输文件的第一个数据,依次以所述第一线程读取的文件数据覆盖所述传输文件的第一部分;第二覆盖模块,用于将所述第二线程读取的文件数据中的第一个数据对应所述传输文件的最后一个数据,依次以所述第二线程读取的文件数据覆盖所述传输文件中未被所述第一线程读取的文件数据所覆盖的第二部分。其中,所述系统还包括:缓存单元,用于将所述第一线程和所述第二线程读取的文件数据缓存在内存中,当所述内存中缓存的文件数据到达预设数据量或数据传输完成时,将所述内存中缓存的文件数据进行所述传输文件的覆盖,释放占用的内存。其中,所述原文件和所述反序文件部署在不同的磁盘上。本专利技术的有益效果为:本专利技术提供的两线程ftp的传输方法及系统,对于ftp客户端,避免了两线程复杂的文件位置调度,可以保证两线程同时结束;本专利技术可以方便进行文件部署,把两个线程对应的文件放入不同磁盘,减少访问冲突,提高访问效率;避免了服务器端和客户端之间的REST交互,因而减少了服务器端和客户端之间的交互。本专利技术在两线程的前提下,最大地利用了网络资源,最大地节约了客户端的CPU资源,而控制最简单,避免了调用REST指令以及频繁切换位置。而且本专利技术还可以适用于不支持REST指令的ftp服务器,且并不需要更改ftp服务器的代码。【附图说明】通过参考附图会更加清楚的理解本专利技术的特征和优点,附图是示意性的而不应理解为对本专利技术进行任何限制,在附图中:图1为本专利技术实施例提供的一种两线程ftp的传输方法的流程示意图;图2为本专利技术另一实施例提供的一种两线程ftp的传输方法中步骤S15的细分流程图;图3为本专利技术实施例提供的一种两线程ftp的传输系统的结构框图;以及图4为本专利技术另一实施例提供的一种两线程ftp的传输系统中传输文件生成单元的内部结构框图。【具体实施方式】为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术实施例提供的一种两线程ftp的传输方法的流程图,如图1所示,该方法包括以下步骤:S11、将原文件的所有字节按从最后一个数据到第一个数据的顺序进行排列,得到反序文件;S12、第一线程从所述原文件的第一个数据开始读取所述原文件;S13、第二线程从所述反序文件的第一个数据开始读取所述当前第1页1 2 3 本文档来自技高网
...
一种两线程ftp的传输方法及系统

【技术保护点】
一种两线程ftp的传输方法,其特征在于,所述方法包括:将原文件的所有字节按从最后一个数据到第一个数据的顺序进行排列,得到反序文件;第一线程从所述原文件的第一个数据开始读取所述原文件;第二线程从所述反序文件的第一个数据开始读取所述反序文件;判断所述第一线程和所述第二线程读取的文件数据之和是否大于等于所述原文件的大小,当所述读取的数据之和大于等于所述原文件的大小时,停止所述第一线程和第二线程;将所述第一线程和所述第二线程读取的文件数据组合成传输文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:余再跃
申请(专利权)人:上海大唐移动通信设备有限公司大唐移动通信设备有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1