CN103237049A - 一种文件传输方法及装置 - Google Patents

一种文件传输方法及装置 Download PDF

Info

Publication number
CN103237049A
CN103237049A CN2013100863054A CN201310086305A CN103237049A CN 103237049 A CN103237049 A CN 103237049A CN 2013100863054 A CN2013100863054 A CN 2013100863054A CN 201310086305 A CN201310086305 A CN 201310086305A CN 103237049 A CN103237049 A CN 103237049A
Authority
CN
China
Prior art keywords
file
module
transmission
thread
submodule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2013100863054A
Other languages
English (en)
Inventor
唐晓军
杨峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing E Hualu Information Technology Co Ltd
Original Assignee
Beijing E Hualu Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing E Hualu Information Technology Co Ltd filed Critical Beijing E Hualu Information Technology Co Ltd
Priority to CN2013100863054A priority Critical patent/CN103237049A/zh
Publication of CN103237049A publication Critical patent/CN103237049A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明一种文件传输方法及装置,所述方法包括以下步骤:①客户端向服务器发出传输文件请求;②服务器接收并响应请求;③客户端接收响应结果,判断服务器是否接受请求,若是则执行步骤④;若否则执行步骤⑤;④判断文件是否大于100M,若是,则以多线程方式传输;若否,以单线程文件传输方式进行传输;⑤所述客户端的本次请求执行结束;传输包括上传和下载。本发明的文件传输方法及装置,当文件较大时,采用多线程传输方式,能够最大限度地利用CPU;当文件较小时,采用单线程传输方式,可避免线程间切换消耗过多的时间,通过对于不同大小的文件采用不同的传输方式,可以提高整个文件传输方法和传输装置的文件传输效率。

Description

一种文件传输方法及装置
技术领域
本发明涉及数据传输技术领域,具体涉及一种文件传输方法及装置。 
背景技术
十几年来,文件传输协议(File Transfer Protocol,缩写为FTP)一直比较流行。FTP在RFC959中被定义,并于1985年10月发布,FTP是一种跨平台的、简单且易于实现的协议。FTP传输协议具有以下特点:1.数据传输模式默认使用美国信息交换标准代码(American Standard Code for Information Interchange,缩写为ASCII)传输数据,有时会造成文件损坏;2.FTP协议未对密码安全做出规定,用户信息数据以明文的形式传输,任何对通讯路径上的路由具有控制能力的人,可以通过嗅探程序获取用户敏感信息;3.在FTP服务器上检索文件一般需要经过客户端建立到FTP服务器控制端口的传输控制协议(Transmission Control Protocol,缩写为TCP)连接、等待TCP握手完成、等待服务器发送回执、向服务器发送用户名并等待响应、向服务器发送密码并等待响应、向服务器发送返回服务器使用的操作系统命令(即SYST命令)并等待响应、向服务器发送数据类型为二进制的(即TYPE I命令)命令并等待响应、发送IP地址和两字节的端口ID(即PORT命令)并等待响应、建立数据传输链接、通过数据传输链接、等待服务器发送二进制指令、客户端发送QUIT命令等十多个步骤。采用Socket文件传输(Socket是一个针对TCP和UDP编程的接口,可以借助Socket建立TCP连接)会根据文件不同的格式采取最合适的编码方式,然后序列化成二进制在网络上进行传输,二进制在网络线路上传输最快;同时Socket文件传输,对传输的数据 按照加密算法进行加密后才传输,就算用嗅探程序截获数据,也不容易得知其中的内容;最后Socket文件传输时,客户端首先向服务器发送相关用户信息,得到服务器认证通过以后,就可以向服务器传输文件了,简化了操作步骤,同时采用多线程,在客户端拆分、合并或上传操作后,由服务器合并、拆分或下载操作,提高了文件传输的效率。经测试,比FTP文件传输相比,可节省至少一半的时间。 
中国专利文献CN101453479A公开了一种快速的文件传输系统,包括:命令模块,用于发起文件传输;文件查验模块,用于传输文件的各子文件;完整性验证模块,用于重新传输未通过验证的子文件。该发明的快速文件传输协议可以方便的组织、管理和调度文件传输的过程。但是该发明对所有文件均采用多线程的文件传输方式,多线程的文件传输方式可以最大限度的提高CPU使用效率,但是线程间的切换也会消耗时间,对于较小的文件而言,对文件进行拆分,将拆分后的多个子文件采用多线程进行传输,接收到全部子文件后再将文件进行合并,文件拆分的时间、线程间切换的时间与文件合并的时间之和将大于对文件直接采用单线程传输所需要的时间,也就是说对于较小的文件采用多线程传输,反而是消耗了更多的时间,反而会降低文件传输速度,进而使得上述文件传输系统传输效率低下。 
发明内容
本发明所要解决的是现有技术中文件传输均采用多线程的文件传输方式,线程间切换会消耗时间并可能降低文件传输效率的技术问题,提供一种更高效的文件传输方法及装置。 
为解决上述技术问题,本发明采用的技术方案如下: 
一种文件传输方法,包括以下步骤: 
S1:客户端向服务器发出传输文件的请求; 
S2:所述服务器接收并响应所述请求,将响应结果发送给所述客户端; 
S3:所述客户端接收所述响应结果,判断所述服务器是否接受请求,若 是,则执行步骤S4;若否,则执行步骤S7; 
S4:判断所述文件是否大于100M,若是,则执行步骤S6;若否,则执行步骤S5; 
S5:将所述文件以单线程文件传输方式进行传输,跳转执行步骤S7; 
S6:将所述文件以多线程文件传输方式进行传输; 
S7:所述客户端的本次请求执行结束; 
其中,所述传输包括上传和下载。 
在所述步骤S6中,还包括以下步骤: 
S601:将所述文件拆分成多个子文件; 
S602:所述多个子文件由线程池的监控线程分给多个线程; 
S603:判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,若是,则执行步骤S603;若否,则执行步骤S604; 
S603:为每个线程分配默认优先级,并进行文件传输,跳转执行步骤S605; 
S604:为每个线程分配高于默认优先级的优先级,并进行文件传输; 
S605:在接收到所述子文件后释放该子文件对应的线程所占资源,并返回线程池; 
S606:在所述多个子文件均成功接收后,接收方对所述多个子文件进行合并还原出所述文件。 
在所述步骤S5和所述步骤S6中,所述传输为加密传输。 
所述步骤S5之后或所述步骤S604之后,还包括判断所述文件或所述子文件是否通过正确性验证的步骤,若是,则传输结束;若否,则将所述文件或所述子文件重新传输。 
所述重新传输的次数小于或等于50。 
当客户端请求下载文件时,服务器在请求下载的文件不存在或该文件禁止下载时发出拒绝下载请求的响应结果。 
基于同一发明构思,本发明还提供一种文件传输装置,包括客户端和服 务器, 
所述客户端进一步包括:请求模块、第一判断模块、第二判断模块、第一单线程传输模块、第一多线程传输模块; 
其中,所述请求模块,用于客户端向服务器发出传输文件的请求; 
所述第一判断模块,用于所述客户端判断所述服务器是否接受请求; 
所述第二判断模块,用于判断待传输文件是否大于100M,当所述文件大于100M,将所述文件发送至第一多线程文件传输模块进行多线程文件传输;否则,将所述文件发送至第一单线程文件传输模块; 
所述第一单线程文件传输模块,用于将所述文件以单线程文件传输方式进行传输并结束; 
所述第一多线程文件传输模块,用于将所述文件以多线程文件传输方式进行传输并结束; 
所述服务器进一步包括:响应模块、第三判断模块、第二单线程文件传输模块、第二多线程文件传输模块; 
其中,所述响应模块,用于服务器接收客户端的请求并响应,将所述响应结果发送给所述客户端; 
所述第三判断模块,用于判断待传输文件是否大于100M,当所述文件大于100M,将所述文件发送至第二多线程文件传输模块进行多线程文件传输;否则,将待传输文件发送至第二单线程文件传输模块; 
所述第二单线程文件传输模块,用于将所述文件以单线程文件传输方式进行传输并结束; 
所述第二多线程文件传输模块,用于将所述文件以多线程文件传输方式进行传输并结束。 
所述客户端还包括第一加密模块、第一正确性验证模块和第一重传设定模块; 
其中, 
所述第一加密模块用于将所述文件加密; 
所述第一正确性验证模块用于判断传输的文件或子文件是否通过正确性验证的步骤,若未通过则要返回第一单线程文件传输模块或第一多线程文件传输模块进行重新传输; 
所述第一重传设定模块,用于设定所述重新传输的次数,所述重新传输的次数小于或等于50。 
所述服务器端还包括第二加密模块、第二正确性验证模块和第二重传设定模块,其中, 
所述第二加密模块用于将所述文件加密; 
所述第二正确性验证模块用于判断传输的文件或子文件是否通过正确性验证的步骤,若未通过则要返回第二单线程文件传输模块或第二多线程文件传输模块进行重新传输; 
所述第二重传设定模块,用于设定重新传输的次数,所述重新传输的次数小于或等于50。 
所述第一多线程文件传输模块包括第一拆分子模块、第一判断子模块、第一分配子模块、第一释放子模块和第一重传子模块; 
其中, 
所述第一拆分子模块,用于将所述文件拆分成多个子文件,并将所述多个子文件由线程池的监控线程分给多个线程; 
所述第一判断子模块,用于判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,将所述判断结果传递给第一分配子模块; 
所述第一分配子模块,用于根据第一判断子模块传递的判断结果为每个线程分配优先级,当判断结果为CPU使用率是否大于80%,并且空闲内存大于整个所述文件时,为所述每个线程分配默认优先级;否则为每个线程分配高于默认优先级的优先级; 
所述第一释放子模块,用于释放该子文件对应的线程所占资源,并返回线程池; 
所述第一合并子模块,用于在所述多个子文件均成功接收后,接收方对 所述多个子文件进行合并还原出所述文件; 
所述第二多线程文件传输模块进一步包括第二拆分子模块、第二判断子模块、第二分配子模块、第二释放子模块、第二重传子模块; 
其中, 
所述第二拆分子模块,用于将所述文件拆分成多个子文件,并将所述多个子文件由线程池的监控线程分给多个线程; 
所述第二判断子模块,用于判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,将所述判断结果传递给第二分配子模块; 
所述第二分配子模块,用于根据第二判断子模块传递的判断结果为每个线程分配优先级,当判断结果为CPU使用率是否大于80%,并且空闲内存大于整个所述文件时,为所述每个线程分配默认优先级;否则为每个线程分配高于默认优先级的优先级; 
所述第二释放子模块,用于释放该子文件对应的线程所占资源,并返回线程池; 
所述第二合并子模块,用于在所述多个子文件均成功接收后,接收方对所述多个子文件进行合并还原出所述文件。 
本发明的上述技术方案相比现有技术具有以下优点: 
1.本发明所述的文件传输方法及装置,当文件大于100M时,采用多线程传输方式,当文件小于或等于100M时,采用单线程传输方式。对大于100M文件用多线程方式传输,能够最大限度地利用CPU;对于小于或等于100M的文件采用单线程传输,可避免线程间切换消耗过多的时间,通过对于不同大小的文件采用不同的传输方式,可以提高整个文件传输方法和传输装置的文件传输效率。 
2.当采用多线程传输方式时,将所述文件拆分成多个子文件并加密,分配给线程进行传输,并由客户端或服务器进行正确性验证,若通过验证,则传输成功,若未通过验证则进行重新传输,若重新验证达到一定次数,则表示传输失败,在子文件传输成功时将子文件合并成一个文件。当文件较大 时,将文件拆分成多个子文件同时传输,能够提高文件传输的效率。将新上传文件的次数设置为小于或等于50,使子文件传输后验证不正确时,说明传输没有成功,要进行重新传输,但无限制地进行重新传输将使程序陷入死循环,因此将重新传输设置为50次,使文件在正常的网络状态下有充分的机会传输成功,若不传输成功则放弃本次传输,进行下一个操作。 
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中: 
图1为本发明的实施例一的文件传输方法的流程图; 
图2为本发明的实施例一的文件传输方法的步骤5的流程图; 
图3为本发明的实施例一的文件传输方法的步骤6的流程图; 
图4为本发明的实施例二的文件传输方法的流程图; 
图5为本发明的实施例三的文件传输系统的结构示意图。 
具体实施方式
实施例一: 
参见图1,本发明的文件传输方法,在下载时,包括以下步骤: 
S1:客户端向服务器发出下载文件的请求; 
S2:所述服务器接收并响应所述请求,将响应结果发送给所述客户端; 
S3:所述客户端接收所述响应结果,判断所述服务器是否允许下载,若是,则执行步骤S4;若否,则执行步骤S7; 
S4:判断所述文件是否大于100M,若是,则执行步骤S6;若否,则执行步骤S5; 
S5:将所述文件以单线程文件传输方式进行传输,跳转执行步骤S7; 
S6:将所述文件以多线程文件传输方式进行传输; 
S7:所述客户端的本次下载请求执行结束。 
进一步地,参见图2,在所述步骤S5,包括以下步骤: 
S501:创建线程; 
S502:将所述文件加密,在本实施例中,所述文件为50M; 
S503:传输所述文件; 
S504:判断所述文件是否传输成功,若是,则执行步骤S505;若否,则返回执行步骤S503; 
S505:结束本次文件传输,撤销所述线程。 
在带宽为100Mb的网络环境下,采用多线程传输50M的文件,将文件拆分成10个子文件,所需要时间为2s-3s,创建10个线程,每个线程传输5M的子文件,创建线程需要1ms时间,撤销线程需要50ms时间,切换线程由操作系统完成,因为CPU在某个时间片内,只能执行一个任务,以Windows95为例,切换线程的时间片为20ms,执行单个线程的时间为1s,文件传输完成后进行合并,所需时间为1s-2s,整个文件传输则共需要13.71-15.71s,而采用单线程传输,需要5s时间,可见在需要下载的文件较小的情况下,由于多线程传输文件需要拆分文件、合并文件,以及在线程间切换,消耗了大量的时间,反而不如单线程直接传输效率高。所以,在判断文件较小的时候,采用单线程传输效率较高。 
进一步地,参见图3,在所述步骤S6中,还包括以下步骤: 
S601:创建10个线程; 
S602:将所述文件拆分成10个子文件;在本实施例中,所述文件为500,拆分为10个子文件,每个子文件50M。 
S603:将所述10个子文件分别进行加密; 
S604:所述10个子文件由线程池的监控线程分给10个线程; 
S605:判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,若是,则执行步骤S606;若否,则执行步骤S607; 
S606:为每个线程分配普通优先级,并进行文件传输,跳转执行步骤S605; 
S607:为每个线程分配较高的优先级,并进行文件传输; 
在本实施例中,线程的优先级分为5级,由高到低分别为最高级(highest)、高级(abovenormal)、普通级(normal)、低级(belownormal)和最低级(lowest)。默认的为普通优先级,即normal,较高的优先级包括两项,即highest、abovenormal,较低的优先级包括两项,即belownormal、lowest。根据CPU的使用率来确定,若CPU使用率是否大于90%,若是,则为线程分配普通优先级或者较低的优先级,否则为线程分配较高的优先级; 
S608:在所述子文件均成功接收后,释放该子文件对应的线程所占资源,撤销所述线程,并返回线程池; 
S609:接收方对所述多个子文件进行合并还原出所述文件。 
在带宽为100Mb的网络环境下,采用多线程传输,创建10个线程,每个线程传输50M的子文件,创建线程需要1ms时间,撤销线程需要50ms时间,切换线程由操作系统完成,因为CPU在某个时间片内,只能执行一个任务,以Windows95为例,Windows95执行一个任务的时间片为20ms,每个线程传输所负责的文件块需要8s,共需要8.051s时间,而采用单线程传输,需要54s时间,可见,在文件较大的情况下,多线程传输将文件分成多个子文件,同时传输,虽然需要拆分文件、合并文件,以及在线程间切换,仍然会较单线程相比效率要高得多。 
在所述步骤S502和步骤S602中,所述文件和子文件的加密算法为哈希算法中的MD5算法和SHA1算法。 
所述步骤S608中,还包括判断各个所述子文件是否通过正确性验证的步骤,若是,则所述子文件传输结束;若否,则将所述子文件重新传输。 
在本实施例中,所述子文件包括以下部分:文件名,文件起始位置标志、文件结束位置标志。根据所述文件的以上部分来验证所述文件是否传输正确。 
进一步地,在所述步骤S5和S6中,所述重新传输的次数小于或等于50。 
实施例二: 
参见图4,本发明的文件传输方法,在上传时与下载时的步骤基本相同,只是在步骤S1、S2和S3中有所不同,在所述实施例二中,不需要判断所述服务器发出的响应是何种类型,只要所述服务器做出响应,所述客户端就开始向所述服务器开始传输文件,直至文件传输成功。由于其余步骤与所述实施一基本相同,此处不再赘述。 
实施例三: 
参见图5,本发明还提供一种文件传输装置,包括客户端和服务器, 
所述客户端进一步包括:请求模块、第一判断模块、第二判断模块、第一单线程传输模块、第一多线程传输模块; 
其中,所述请求模块,用于客户端向服务器发出传输文件的请求; 
所述第一判断模块,用于所述客户端判断所述服务器是否接受请求; 
所述第二判断模块,用于判断待传输文件是否大于100M,当所述文件大于100M,将所述文件发送至第一多线程文件传输模块进行多线程文件传输;否则,将所述文件发送至第一单线程文件传输模块; 
所述第一单线程文件传输模块,用于将所述文件以单线程文件传输方式进行传输并结束; 
所述第一多线程文件传输模块,用于将所述文件以多线程文件传输方式进行传输并结束; 
所述服务器进一步包括:响应模块、第三判断模块、第二单线程文件传输模块、第二多线程文件传输模块; 
其中,所述响应模块,用于服务器接收客户端的请求并响应,将所述响应结果发送给所述客户端; 
所述第三判断模块,用于判断待传输文件是否大于100M,当所述文件大于100M,将所述文件发送至第二多线程文件传输模块进行多线程文件传输;否则,将待传输文件发送至第二单线程文件传输模块; 
所述第二单线程文件传输模块,用于将所述文件以单线程文件传输方式进行传输并结束; 
所述第二多线程文件传输模块,用于将所述文件以多线程文件传输方式进行传输并结束。 
所述客户端还包括第一加密模块、第一正确性验证模块和第一重传设定模块; 
其中, 
所述第一加密模块用于将所述文件加密; 
所述第一正确性验证模块用于判断传输的文件或子文件是否通过正确性验证的步骤,若未通过则要返回第一单线程文件传输模块或第一多线程文件传输模块进行重新传输; 
所述第一重传设定模块,用于设定所述重新传输的次数,所述重新传输的次数小于或等于50。 
所述服务器端还包括第二加密模块、第二正确性验证模块和第二重传设定模块;其中, 
所述第二加密模块用于将所述文件加密; 
所述第二正确性验证模块用于判断传输的文件或子文件是否通过正确性验证的步骤,若未通过则要返回第二单线程文件传输模块或第二多线程文件传输模块进行重新传输; 
所述第二重传设定模块,用于设定重新传输的次数,所述重新传输的次数小于或等于50。 
所述第一多线程文件传输模块包括第一拆分子模块、第一判断子模块、第一分配子模块、第一释放子模块和第一重传子模块; 
其中, 
所述第一拆分子模块,用于将所述文件拆分成多个子文件,并将所述多个子文件由线程池的监控线程分给多个线程; 
所述第一判断子模块,用于判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,将所述判断结果传递给第一分配子模块; 
所述第一分配子模块,用于根据第一判断子模块传递的判断结果为每个 线程分配优先级,当判断结果为CPU使用率是否大于80%,并且空闲内存大于整个所述文件时,为所述每个线程分配默认优先级;否则为每个线程分配高于默认优先级的优先级; 
所述第一释放子模块,用于释放该子文件对应的线程所占资源,并返回线程池; 
所述第一合并子模块,用于在所述多个子文件均成功接收后,接收方对所述多个子文件进行合并还原出所述文件; 
所述第二多线程文件传输模块进一步包括第二拆分子模块、第二判断子模块、第二分配子模块、第二释放子模块、第二重传子模块; 
其中, 
所述第二拆分子模块,用于将所述文件拆分成多个子文件,并将所述多个子文件由线程池的监控线程分给多个线程; 
所述第二判断子模块,用于判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,将所述判断结果传递给第二分配子模块; 
所述第二分配子模块,用于根据第二判断子模块传递的判断结果为每个线程分配优先级,当判断结果为CPU使用率是否大于80%,并且空闲内存大于整个所述文件时,为所述每个线程分配默认优先级;否则为每个线程分配高于默认优先级的优先级; 
所述第二释放子模块,用于释放该子文件对应的线程所占资源,并返回线程池; 
所述第二合并子模块,用于在所述多个子文件均成功接收后,接收方对所述多个子文件进行合并还原出所述文件。 
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。 

Claims (10)

1.一种文件传输方法,其特征在于,包括以下步骤:
S1:客户端向服务器发出传输文件的请求;
S2:所述服务器接收并响应所述请求,将响应结果发送给所述客户端;
S3:所述客户端接收所述响应结果,判断所述服务器是否接受请求,若是,则执行步骤S4;若否,则执行步骤S7;
S4:判断所述文件是否大于100M,若是,则执行步骤S6;若否,则执行步骤S5;
S5:将所述文件以单线程文件传输方式进行传输,跳转执行步骤S7;
S6:将所述文件以多线程文件传输方式进行传输;
S7:所述客户端的本次请求执行结束;
其中,所述传输包括上传和下载。
2.根据权利要求1所述的文件传输方法,其特征在于,在所述步骤S6中,还包括以下步骤:
S601:将所述文件拆分成多个子文件;
S602:所述多个子文件由线程池的监控线程分给多个线程;
S603:判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,若是,则执行步骤S604;若否,则执行步骤S605;
S604:为每个线程分配默认优先级,并进行文件传输,跳转执行步骤S606;
S605:为每个线程分配高于默认优先级的优先级,并进行文件传输;
S606:在接收到所述子文件后释放该子文件对应的线程所占资源,并返回线程池;
S607:在所述多个子文件均成功接收后,接收方对所述多个子文件进行合并还原出所述文件。
3.根据权利要求1或2所述的文件传输方法,其特征在于,在所述步骤S5和所述步骤S6中,所述传输为加密传输。
4.根据权利要求2所述的文件传输方法,其特征在于,所述步骤S5之后或所述步骤S604或所述步骤S605之后,还包括判断所述文件或所述子文件是否通过正确性验证的步骤,若是,则传输结束;若否,则将所述文件或所述子文件重新传输。
5.根据权利要求4所述的文件传输方法,其特征在于,所述重新传输的次数小于或等于50。
6.根据权利要求1-5任一所述的文件传输方法,其特征在于,当客户端请求下载文件时,服务器在请求下载的文件不存在或该文件禁止下载时发出拒绝下载请求的响应结果。
7.一种文件传输装置,包括客户端和服务器,其特征在于,
所述客户端进一步包括:请求模块、第一判断模块、第二判断模块、第一单线程传输模块、第一多线程传输模块;
其中,所述请求模块,用于客户端向服务器发出传输文件的请求;
所述第一判断模块,用于所述客户端判断所述服务器是否接受请求;
所述第二判断模块,用于判断待传输文件是否大于100M,当所述文件大于100M,将所述文件发送至第一多线程文件传输模块进行多线程文件传输;否则,将所述文件发送至第一单线程文件传输模块;
所述第一单线程文件传输模块,用于将所述文件以单线程文件传输方式进行传输并结束;
所述第一多线程文件传输模块,用于将所述文件以多线程文件传输方式进行传输并结束;
所述服务器进一步包括:响应模块、第三判断模块、第二单线程文件传输模块、第二多线程文件传输模块;
其中,所述响应模块,用于服务器接收客户端的请求并响应,将所述响应结果发送给所述客户端;
所述第三判断模块,用于判断待传输文件是否大于100M,当所述文件大于100M,将所述文件发送至第二多线程文件传输模块进行多线程文件传输;否则,将待传输文件发送至第二单线程文件传输模块;
所述第二单线程文件传输模块,用于将所述文件以单线程文件传输方式进行传输并结束;
所述第二多线程文件传输模块,用于将所述文件以多线程文件传输方式进行传输并结束。
8.根据权利要求7所述的文件传输装置,其特征在于,所述客户端还包括第一加密模块、第一正确性验证模块和第一重传设定模块;
其中,
所述第一加密模块用于将所述文件加密;
所述第一正确性验证模块用于判断传输的文件或子文件是否通过正确性验证的步骤,若未通过则要返回第一单线程文件传输模块或第一多线程文件传输模块进行重新传输;
所述第一重传设定模块,用于设定所述重新传输的次数,所述重新传输的次数小于或等于50。
9.根据权利要求7所述的文件传输装置,其特征在于,所述服务器端还包括第二加密模块、第二正确性验证模块和第二重传设定模块,其中,
所述第二加密模块用于将所述文件加密;
所述第二正确性验证模块用于判断传输的文件或子文件是否通过正确性验证的步骤,若未通过则要返回第二单线程文件传输模块或第二多线程文件传输模块进行重新传输;
所述第二重传设定模块,用于设定重新传输的次数,所述重新传输的次数小于或等于50。
10.根据权利要求7所述的文件传输装置,其特征在于,所述第一多线程文件传输模块包括第一拆分子模块、第一判断子模块、第一分配子模块、第一释放子模块和第一重传子模块;
其中,
所述第一拆分子模块,用于将所述文件拆分成多个子文件,并将所述多个子文件由线程池的监控线程分给多个线程;
所述第一判断子模块,用于判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,将所述判断结果传递给第一分配子模块;
所述第一分配子模块,用于根据第一判断子模块传递的判断结果为每个线程分配优先级,当判断结果为CPU使用率是否大于80%,并且空闲内存大于整个所述文件时,为所述每个线程分配默认优先级;否则为每个线程分配高于默认优先级的优先级;
所述第一释放子模块,用于释放该子文件对应的线程所占资源,并返回线程池;
所述第一合并子模块,用于在所述多个子文件均成功接收后,接收方对所述多个子文件进行合并还原出所述文件;
所述第二多线程文件传输模块进一步包括第二拆分子模块、第二判断子模块、第二分配子模块、第二释放子模块、第二重传子模块;
其中,
所述第二拆分子模块,用于将所述文件拆分成多个子文件,并将所述多个子文件由线程池的监控线程分给多个线程;
所述第二判断子模块,用于判断CPU使用率是否大于80%,并且空闲内存是否大于整个所述文件的大小,将所述判断结果传递给第二分配子模块;
所述第二分配子模块,用于根据第二判断子模块传递的判断结果为每个线程分配优先级,当判断结果为CPU使用率是否大于80%,并且空闲内存大于整个所述文件时,为所述每个线程分配默认优先级;否则为每个线程分配高于默认优先级的优先级;
所述第二释放子模块,用于释放该子文件对应的线程所占资源,并返回线程池;
所述第二合并子模块,用于在所述多个子文件均成功接收后,接收方对所述多个子文件进行合并还原出所述文件。
CN2013100863054A 2013-03-18 2013-03-18 一种文件传输方法及装置 Pending CN103237049A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013100863054A CN103237049A (zh) 2013-03-18 2013-03-18 一种文件传输方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013100863054A CN103237049A (zh) 2013-03-18 2013-03-18 一种文件传输方法及装置

Publications (1)

Publication Number Publication Date
CN103237049A true CN103237049A (zh) 2013-08-07

Family

ID=48885065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013100863054A Pending CN103237049A (zh) 2013-03-18 2013-03-18 一种文件传输方法及装置

Country Status (1)

Country Link
CN (1) CN103237049A (zh)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103607468A (zh) * 2013-11-29 2014-02-26 深圳市金立通信设备有限公司 一种上传文件的方法及终端
CN103618942A (zh) * 2013-12-16 2014-03-05 乐视致新电子科技(天津)有限公司 智能电视及其浏览器网页视频的播放方法和装置
CN103944995A (zh) * 2014-04-28 2014-07-23 东华大学 一种识别宽带网络中独立用户账户的方法
CN104202667A (zh) * 2014-09-19 2014-12-10 青岛海信宽带多媒体技术有限公司 Iptv机顶盒升级方法和系统
CN104636206A (zh) * 2015-02-05 2015-05-20 北京创毅视讯科技有限公司 一种系统性能的优化方法和装置
CN104780120A (zh) * 2015-04-15 2015-07-15 天脉聚源(北京)教育科技有限公司 一种局域网中文件传输的方法和装置
CN104932916A (zh) * 2015-05-18 2015-09-23 杭州魔品科技有限公司 苹果应用快速安装方法
CN104967619A (zh) * 2015-06-17 2015-10-07 深圳市腾讯计算机系统有限公司 文件推送方法、装置和系统
JP2016197790A (ja) * 2015-04-02 2016-11-24 富士通株式会社 無線通信装置、無線通信プログラムおよび無線通信方法
CN106445665A (zh) * 2016-09-19 2017-02-22 武汉斗鱼网络科技有限公司 一种应用于android系统的系统文件下载方法及下载工具
CN106550042A (zh) * 2016-11-23 2017-03-29 广州优视网络科技有限公司 多线程下载方法和装置及计算设备
CN106856503A (zh) * 2015-12-08 2017-06-16 三星电子株式会社 用于对设备的上传大小进行控制的方法和装置
CN107682459A (zh) * 2017-11-20 2018-02-09 深圳市沃特沃德股份有限公司 数据分包上传服务器的方法及装置
CN107895389A (zh) * 2017-11-30 2018-04-10 广东欧珀移动通信有限公司 一种图片显示方法、装置、移动终端及存储介质
CN107908463A (zh) * 2017-07-21 2018-04-13 国网浙江省电力公司 一种任务分解及并行处理方法
CN108052386A (zh) * 2017-10-30 2018-05-18 北京奇虎科技有限公司 一种测试结果传输方法、装置、服务器及存储介质
CN108494838A (zh) * 2018-03-12 2018-09-04 百途新媒体技术(北京)有限公司 一种基于iptv高负载、自动匹配的媒资对接系统
CN108600331A (zh) * 2018-04-02 2018-09-28 北京大米科技有限公司 交互界面呈现方法、客户端、终端及系统
CN108881485A (zh) * 2018-07-30 2018-11-23 中国石油化工股份有限公司 保障大数据包下的高并发系统响应时间的方法
CN109033577A (zh) * 2018-07-11 2018-12-18 深圳市新威尔电子有限公司 基于LabVIEW的电化学工作站控制方法、上位机及存储介质
CN109428899A (zh) * 2017-08-21 2019-03-05 中国石油化工股份有限公司 文件安全传输管理方法及系统
CN109547566A (zh) * 2018-12-25 2019-03-29 华南理工大学 一种基于内存分配的多线程上传优化方法
CN110324297A (zh) * 2018-03-30 2019-10-11 武汉斗鱼网络科技有限公司 一种消息处理方法及装置
CN111787105A (zh) * 2020-07-01 2020-10-16 深圳市有方科技股份有限公司 文件传输方法、装置、计算机设备和存储介质
CN112035407A (zh) * 2020-09-01 2020-12-04 武汉虹旭信息技术有限责任公司 一种文件传输系统及传输方法
CN112184510A (zh) * 2020-10-15 2021-01-05 崔丽廷 一种基于云端的互动教学平台
CN112416877A (zh) * 2020-11-24 2021-02-26 武汉联影医疗科技有限公司 医疗数据存储方法、装置、计算机设备和存储介质
CN112995329A (zh) * 2021-03-22 2021-06-18 洪璐 一种传输文件方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011155097A1 (ja) * 2010-06-11 2011-12-15 パナソニック株式会社 命令発行制御装置及び方法
CN102368213A (zh) * 2011-09-26 2012-03-07 奇智软件(北京)有限公司 一种ie内核浏览器的页面下载控制方法和系统
CN102611760A (zh) * 2012-04-16 2012-07-25 苏州阔地网络科技有限公司 一种文件的传输方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011155097A1 (ja) * 2010-06-11 2011-12-15 パナソニック株式会社 命令発行制御装置及び方法
CN102368213A (zh) * 2011-09-26 2012-03-07 奇智软件(北京)有限公司 一种ie内核浏览器的页面下载控制方法和系统
CN102611760A (zh) * 2012-04-16 2012-07-25 苏州阔地网络科技有限公司 一种文件的传输方法及系统

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103607468A (zh) * 2013-11-29 2014-02-26 深圳市金立通信设备有限公司 一种上传文件的方法及终端
CN103618942A (zh) * 2013-12-16 2014-03-05 乐视致新电子科技(天津)有限公司 智能电视及其浏览器网页视频的播放方法和装置
CN103618942B (zh) * 2013-12-16 2016-09-28 乐视致新电子科技(天津)有限公司 智能电视及其浏览器网页视频的播放方法和装置
CN103944995B (zh) * 2014-04-28 2017-06-06 东华大学 一种识别宽带网络中独立用户账户的方法
CN103944995A (zh) * 2014-04-28 2014-07-23 东华大学 一种识别宽带网络中独立用户账户的方法
CN104202667A (zh) * 2014-09-19 2014-12-10 青岛海信宽带多媒体技术有限公司 Iptv机顶盒升级方法和系统
CN104636206A (zh) * 2015-02-05 2015-05-20 北京创毅视讯科技有限公司 一种系统性能的优化方法和装置
CN104636206B (zh) * 2015-02-05 2018-01-05 北京创毅视讯科技有限公司 一种系统性能的优化方法和装置
JP2016197790A (ja) * 2015-04-02 2016-11-24 富士通株式会社 無線通信装置、無線通信プログラムおよび無線通信方法
CN104780120A (zh) * 2015-04-15 2015-07-15 天脉聚源(北京)教育科技有限公司 一种局域网中文件传输的方法和装置
CN104932916A (zh) * 2015-05-18 2015-09-23 杭州魔品科技有限公司 苹果应用快速安装方法
CN104967619B (zh) * 2015-06-17 2018-09-04 深圳市腾讯计算机系统有限公司 文件推送方法、装置和系统
CN104967619A (zh) * 2015-06-17 2015-10-07 深圳市腾讯计算机系统有限公司 文件推送方法、装置和系统
US10805363B2 (en) 2015-06-17 2020-10-13 Tencent Technology (Shenzhen) Company Limited Method, device and system for pushing file
CN106856503A (zh) * 2015-12-08 2017-06-16 三星电子株式会社 用于对设备的上传大小进行控制的方法和装置
CN106445665A (zh) * 2016-09-19 2017-02-22 武汉斗鱼网络科技有限公司 一种应用于android系统的系统文件下载方法及下载工具
CN106445665B (zh) * 2016-09-19 2019-11-15 武汉斗鱼网络科技有限公司 一种应用于android系统的系统文件下载方法及下载工具
CN106550042B (zh) * 2016-11-23 2019-08-23 广州优视网络科技有限公司 多线程下载方法和装置及计算设备
CN106550042A (zh) * 2016-11-23 2017-03-29 广州优视网络科技有限公司 多线程下载方法和装置及计算设备
CN107908463A (zh) * 2017-07-21 2018-04-13 国网浙江省电力公司 一种任务分解及并行处理方法
CN107908463B (zh) * 2017-07-21 2021-12-10 国网浙江省电力公司 一种任务分解及并行处理方法
CN109428899A (zh) * 2017-08-21 2019-03-05 中国石油化工股份有限公司 文件安全传输管理方法及系统
CN108052386A (zh) * 2017-10-30 2018-05-18 北京奇虎科技有限公司 一种测试结果传输方法、装置、服务器及存储介质
CN107682459A (zh) * 2017-11-20 2018-02-09 深圳市沃特沃德股份有限公司 数据分包上传服务器的方法及装置
CN107895389A (zh) * 2017-11-30 2018-04-10 广东欧珀移动通信有限公司 一种图片显示方法、装置、移动终端及存储介质
CN108494838A (zh) * 2018-03-12 2018-09-04 百途新媒体技术(北京)有限公司 一种基于iptv高负载、自动匹配的媒资对接系统
CN110324297A (zh) * 2018-03-30 2019-10-11 武汉斗鱼网络科技有限公司 一种消息处理方法及装置
CN108600331A (zh) * 2018-04-02 2018-09-28 北京大米科技有限公司 交互界面呈现方法、客户端、终端及系统
CN109033577A (zh) * 2018-07-11 2018-12-18 深圳市新威尔电子有限公司 基于LabVIEW的电化学工作站控制方法、上位机及存储介质
CN109033577B (zh) * 2018-07-11 2022-11-08 深圳市新威尔电子有限公司 基于LabVIEW的电化学工作站控制方法、上位机及存储介质
CN108881485A (zh) * 2018-07-30 2018-11-23 中国石油化工股份有限公司 保障大数据包下的高并发系统响应时间的方法
CN109547566B (zh) * 2018-12-25 2020-12-22 华南理工大学 一种基于内存分配的多线程上传优化方法
CN109547566A (zh) * 2018-12-25 2019-03-29 华南理工大学 一种基于内存分配的多线程上传优化方法
CN111787105A (zh) * 2020-07-01 2020-10-16 深圳市有方科技股份有限公司 文件传输方法、装置、计算机设备和存储介质
CN111787105B (zh) * 2020-07-01 2023-07-07 深圳市有方科技股份有限公司 文件传输方法、装置、计算机设备和存储介质
CN112035407A (zh) * 2020-09-01 2020-12-04 武汉虹旭信息技术有限责任公司 一种文件传输系统及传输方法
CN112035407B (zh) * 2020-09-01 2023-10-31 武汉虹旭信息技术有限责任公司 一种文件传输系统及传输方法
CN112184510A (zh) * 2020-10-15 2021-01-05 崔丽廷 一种基于云端的互动教学平台
CN112184510B (zh) * 2020-10-15 2021-10-29 深圳市逸马科技有限公司 一种基于云端的互动教学平台
CN112416877A (zh) * 2020-11-24 2021-02-26 武汉联影医疗科技有限公司 医疗数据存储方法、装置、计算机设备和存储介质
CN112995329A (zh) * 2021-03-22 2021-06-18 洪璐 一种传输文件方法及系统

Similar Documents

Publication Publication Date Title
CN103237049A (zh) 一种文件传输方法及装置
CN104580158B (zh) 一种分布式平台文件与内容分发方法及系统
CN103248452B (zh) 数据发送装置、数据接收装置、终端和数据传输方法
EP3179701B1 (en) File upload and download methods and associated server
CN102855236B (zh) 文件传输系统及文件传输方法
CN108933805A (zh) 一种文件传输方法及系统
CN105791245B (zh) 一种数据发送、接收方法和装置
CN109474606A (zh) 文件传输方法、装置、计算机设备及存储介质
CN103986764A (zh) 用于多客户端协同文件上传的设备和方法
CN101039310B (zh) 链路共享服务装置以及通信方法
US11050675B2 (en) Scheduler for coordination and synchronization of data across low-bandwidth links and method thereof
CN104539690B (zh) 一种基于反馈机制和md5码检测的服务器远程数据同步方法
CN103841135B (zh) 文件加速下载方法及装置
CN104144186A (zh) 云计算环境中基于Web浏览器的数据上传方法与系统
CN103795750A (zh) 一种文件传送方法及其系统
CN103281362B (zh) 一种文件传输协议
KR20100072992A (ko) 다수의 클라이언트를 위한 분산 네트워크 스토리지 장치 및그 방법
US20170085340A1 (en) Method and apparatus for data communication of vehicle
CN103826139A (zh) Cdn系统、观看服务器以及流媒体数据传输方法
CN109607341B (zh) 基于区块链的电梯运转信息管理系统
CN101453479A (zh) 一种快速的文件传输系统
CN104301438A (zh) 一种上传文件的方法
US10355960B2 (en) Data transfer system including one-way datalink and continuous data synchronization
CN106878453B (zh) 共享云存储方法及系统
CN107370767A (zh) 一种互联网分享系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130807