CN102611760A - 一种文件的传输方法及*** - Google Patents
一种文件的传输方法及*** Download PDFInfo
- Publication number
- CN102611760A CN102611760A CN2012101113135A CN201210111313A CN102611760A CN 102611760 A CN102611760 A CN 102611760A CN 2012101113135 A CN2012101113135 A CN 2012101113135A CN 201210111313 A CN201210111313 A CN 201210111313A CN 102611760 A CN102611760 A CN 102611760A
- Authority
- CN
- China
- Prior art keywords
- file
- files
- thread
- blocks
- transmitting terminal
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种文件的传输方法及***。上述方法包括以下步骤:发送端读取待传输的文件,并将所述文件拆分为多个文件块;所述发送端根据预设策略调用线程通过函数NetGroup.addHaveObject传输所述文件块;接收端调用函数NetGroup.addWantObject从所述发送端接收所述文件块。其中,所述预设策略为:所述发送端设定待传输文件的优先级,并根据线程池中所有线程的空闲率将线程归入不同类别,并确定待传输文件的优先级与线程类别的对应关系,并根据待传输文件拆分的文件块的大小,调用每个类别中相应的线程传输对应优先级的文件的文件块。
Description
技术领域
本发明属于网络通信领域,尤其涉及一种文件的传输方法及***。
背景技术
随着网络通信技术的飞速发展,对网络文件传输速度的要求越来越高。目前,基于网页上传或下载文件的速度较慢。而且,基于网页上传或下载文件时,如果遇到网络较差或网络断开的情况,则需要重新从头开始上传或下载文件,从而造成时间浪费。
发明内容
本发明提供一种文件的传输方法及***,以解决上述问题。
本发明提供一种文件的传输方法。上述方法包括以下步骤:发送端读取待传输的文件,并将所述文件拆分为多个文件块;所述发送端根据预设策略调用线程通过函数NetGroup.addHaveObject传输所述文件块;接收端调用函数NetGroup.addWantObject从所述发送端接收所述文件块。其中,所述预设策略为:所述发送端设定待传输文件的优先级,并根据线程池中所有线程的空闲率将线程归入不同类别,并确定待传输文件的优先级与线程类别的对应关系,并根据待传输文件拆分的文件块的大小,调用每个类别中相应的线程传输对应优先级的文件的文件块。
本发明还提供一种文件的传输***,包括发送端及接收端。发送端连接接收端。其中,发送端,用于读取待传输的文件,并将所述文件拆分为多个文件块。发送端,还用于根据预设策略调用线程通过函数NetGroup.addHaveObject传输所述文件块。接收端,用于调用函数NetGroup.addWantObject从所述发送端接收所述文件块。其中,所述预设策略为:所述发送端设定待传输文件的优先级,并根据线程池中所有线程的空闲率将线程归入不同类别,并确定待传输文件的优先级与线程类别的对应关系,并根据待传输文件拆分的文件块的大小,调用每个类别中相应的线程传输对应优先级的文件的文件块。
相较于先前技术,根据本发明提供的文件的传输方法及***,发送端将待传输文件拆分为多个文件块后进行传输,而且发送端通过函数NetGroup.addHaveObject传输所述文件块,接收端调用函数NetGroup.addWantObject接收文件块。如此,将大文件拆分为多个文件块后传输,可以节省传输时间,并提高传输速度。此外,文件传输更稳定,从而能够应对复杂的网络环境。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为根据本发明的较佳实施例提供的文件的传输方法的流程图;
图2所示为根据本发明的较佳实施例提供的文件的传输***的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的文件的传输方法的流程图。如图1所示,本发明的较佳实施例提供的文件的传输方法包括步骤101~103。
于步骤101,发送端读取待传输的文件,并将所述文件拆分为多个文件块。例如,发送端读取待传输的文件A,并将待传输的文件A拆分为五个文件块(即,文件块a1、a2、a3、a4、a5)。其中,可将文件A拆分为大小一致的五个文件块,或者根据需要将文件A拆分为大小不一致的五个文件块。然而,本发明对此并不限定。
于步骤102,所述发送端根据预设策略调用线程通过函数NetGroup.addHaveObject传输所述文件块。例如,发送端调用线程通过函数NetGroup.addHaveObject(a1,a5)传输文件块a1~a5。
于本实施例中,预设策略为:所述发送端设定待传输文件的优先级,并根据线程池中所有线程的空闲率将线程归入不同类别,并确定待传输文件的优先级与线程类别的对应关系,并根据待传输文件拆分的文件块的大小,调用每个类别中相应的线程传输对应优先级的文件的文件块。具体而言,当对应于同一线程类别的文件块的大小不一致时,发送端调用所述线程类别中空闲率较高的线程传输较大的文件块,调用所述线程类别中空闲率较低的线程传输较小的文件块。当对应于同一线程类别的文件块的大小一致时,发送端随机调用所述线程类别中的线程传输所述文件块。于此,线程的空闲率指采样时段内,线程的空闲时间占采样时段的百分比。线程的空闲率计算可为实时计算或定时计算。然而,本发明对此并不限定。
具体而言,发送端设定的待传输文件的优先级由高至低例如依次为:第一级、第二级、第三级。然而,本发明对此并不限定。于其他实施例中,可根据需要设置待传输文件的优先级。此外,线程池中的线程以空闲率为划分标准进行划分。例如,线程可根据空闲率划分为三个类别,具体而言,空闲率大于或等于75%的线程可归为第一类别,空闲率大于50%且小于75%的线程可归为第二类别,空闲率小于或等于50%的线程可归为第三类别。其中,本发明并不限定线程的划分标准。此外,发送端还确定待传输文件的优先级与线程类别的对应关系。例如,第一级的待传输文件对应于第一类别的线程,第二级的待传输文件对应于第二类别的线程,第三级的待传输文件对应于第三类别的线程。于此,待传输文件的优先级与线程类别为一对一的关系,然而,本发明并不限定于此。于其他实施例中,可根据需要设置待传输文件与线程类别对应关系为一对多或多对多的关系。其中,待传输文件与线程类别的对应关系例如下表所示。
待传输文件 | 待传输文件优先级 | 线程类别 |
文件D、E | 第一级 | 第一类别 |
文件M、N | 第二级 | 第二类别 |
文件P、Q | 第三级 | 第三类别 |
于本实施例中,发送端计算所有线程的空闲率可将线程归入相应的类别。于此,线程与其类别的对应关系例如下表所示。
以发送端传输文件D、M为例,发送端例如将文件D拆分为三个文件块d1~d3,且文件块d1~d3的大小不一致(例如,文件块由大至小的顺序依次为:文件块d1、文件块d2、文件块d3),发送端将文件M拆分为大小一致的三个文件块m1~m3。因此,发送端会调用文件D对应的线程类别(即,第一类别)中的空闲率最高的线程a传输文件块d1,调用线程b传输文件块d2,调用线程c传输文件块d3。同时,发送端会调用文件M对应的线程类别(即,第二类别)中的线程d传输文件块m1,线程e传输文件块m2(或者,调用线程d传输文件m2,调用线程e传输文件块m1),同时调用第三类别中空闲率较高的线程f传输文件块m3。
于另一较佳实施例中,预设策略为:所述发送端设定线程池中所有线程的优先级,并确定文件块与线程优先级的对应关系,所述发送端计算每个优先级中所有线程的空闲率,并根据文件块的大小及所述文件块对应优先级中线程的空闲率调用相应的线程传输所述文件块。具体而言,当对应于同一线程优先级的文件块的大小不一致时,发送端调用所述优先级中空闲率较高的线程传输较大的文件块,调用所述优先级中空闲率较低的线程传输较小的文件块。当对应于同一线程优先级的文件块的大小一致时,发送端随机调用所述优先级中的线程传输所述文件块。于此,线程的空闲率指采样时段内,线程的空闲时间占采样时段的百分比。线程的空闲率计算可为实时计算或定时计算。然而,本发明对此并不限定。
举例而言,发送端设定的线程池中线程与其优先级的对应关系如下表所示。
线程名 | 优先级 |
线程1 | 第一等级 |
线程2 | 第一等级 |
线程3 | 第一等级 |
线程4 | 第一等级 |
线程5 | 第二等级 |
线程6 | 第二等级 |
线程7 | 第二等级 |
线程8 | 第三等级 |
线程9 | 第三等级 |
线程10 | 第三等级 |
如上表所示,各线程优先级由高至低依次为:第一等级、第二等级、第三等级。其中,本发明并不限定于上表中的线程及优先级对应关系。于实际应用中,可根据需要重新设定线程及优先级。
此外,发送端亦确定文件块与线程优先级的对应关系。举例而言,若发送端传输文件A、B及C时,发送端将文件A拆分为文件块a1~a5,将文件B拆分为文件块b1~b4,将文件C拆分为文件块c1~c3。其中,文件块a1~a5的大小不一致(例如,文件块由大至小的顺序依次为:文件块a1、文件块a2、文件块a3、文件块a4、文件块a5),文件块b1~b4的大小一致,且文件块c1~c3的大小一致。同时,发送端例如可确定文件块a1~a5、b1~b4及c1~c3与线程优先级的对应关系如下表所示。
文件块 | 线程优先级 |
文件块a1~a5 | 第一等级 |
文件块b1~b4 | 第二等级 |
文件块c1~c3 | 第三等级 |
于本实施例中,由于文件块a1~a5的大小不一致,因此,发送端调用文件块a1~a5对应的线程优先级(即,第一等级)中空闲率较高的线程传输较大的文件块,调用所述优先级中空闲率较低的线程传输较小的文件块。举例而言,若第一等级优先级中的线程的空闲率从高至低的顺序为:线程1、线程2、线程3、线程4,第二等级优先级的线程的空闲率从高至低的顺序为:线程5、线程6、线程7,第三等级优先级的线程的空闲率从高至低的顺序为:线程8、线程9、线程10。相应地,发送端调用第一等级中的线程1传输文件块a1,调用线程2传输文件块a2,调用线程a3传输文件块a3,调用线程4传输文件块a4。同时,发送端调用第二等级优先级中空闲率最高的线程5传输文件块a5。此外,发送端从第二等级中剩余的线程中随机调用线程6传输文件块b1,调用线程7传输文件块b2,同时调用第三等级优先级中空闲率较高的线程8及线程9分别传输文件块b3及文件块b4。此外,发送端可调用第三等级优先级中的线程10传输文件块c1。对于文件块c2及c3可等待对应优先级中的线程空闲后再处理。
于步骤103,接收端调用函数NetGroup.addWantObject从所述发送端接收所述文件块。
于本实施例中,发送端向接收端传输文件块前,发送端发送第一指令给接收端,接收端接收第一指令后响应NetGroup.Replication.Fetch.Result事件,并调用函数NetGroup.addWantObject从发送端接收文件块。而且,接收端从发送端接收文件块后,接收端发送第二指令给发送端。其中,接收端接收发送端发送的第一指令后,进行文件块接收准备,发送端接收到接收端发送的第二指令后,可确定接收端已接收文件块。此外,发送端会首先发送文件头,接收端调用NetGroup.addWantObjects(0,0)接收文件头,其中,文件头保存文件的基本信息(例如,文件名及文件大小等)。于此,文件块的接收顺序不限,只要确保首先接收文件头即可。此外,接收端接收到文件块后保存接收的文件块,直至文件的所有文件块全部接收完成,最后保存文件。
于本实施例中,若发送端为客户端时,接收端可为客户端或服务器。当接收端为客户端时,发送端可为客户端或服务器。本发明对此并不限定。
图2所示根据本发明的较佳实施例提供的文件的传输***的示意图。如图2所示,本发明的较佳实施例提供的文件的传输***包括发送端20及接收端21。发送端20连接接收端21。其中,发送端20用于读取待传输的文件,并将所述文件拆分为多个文件块。发送端20还用于根据预设策略调用线程通过函数NetGroup.addHaveObject传输所述文件块。接收端21用于调用函数NetGroup.addWantObject从所述发送端接收所述文件块。其中,所述预设策略为:所述发送端设定待传输文件的优先级,并根据线程池中所有线程的空闲率将线程归入不同类别,并确定待传输文件的优先级与线程类别的对应关系,并根据待传输文件拆分的文件块的大小,调用每个类别中相应的线程传输对应优先级的文件的文件块。关于本***的具体操作过程同上述方法所述,故于此不再赘述。
于本实施例中,若发送端为客户端时,接收端可为客户端或服务器。当接收端为客户端时,发送端可为客户端或服务器。然而,本发明对此并不限定。
综上所述,根据本发明较佳实施例提供的文件的传输方法及***,发送端将待传输文件拆分为多个文件块后进行传输,而且发送端通过函数NetGroup.addHaveObject传输所述文件块,接收端调用函数NetGroup.addWantObject接收文件块。如此,将大文件拆分为多个文件块后传输,可以节省传输时间,并提高传输速度。此外,文件传输更稳定,从而能够应对复杂的网络环境。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种文件的传输方法,其特征在于,包括以下步骤:
发送端读取待传输的文件,并将所述文件拆分为多个文件块;
所述发送端根据预设策略调用线程通过函数NetGroup.addHaveObject传输所述文件块;
接收端调用函数NetGroup.addWantObject从所述发送端接收所述文件块,
其中,所述预设策略为:所述发送端设定待传输文件的优先级,并根据线程池中所有线程的空闲率将线程归入不同类别,并确定待传输文件的优先级与线程类别的对应关系,并根据待传输文件拆分的文件块的大小,调用每个类别中相应的线程传输对应优先级的文件的文件块。
2.根据权利要求1所述的方法,其特征在于,当对应于同一线程类别的文件块的大小不一致时,所述发送端调用所述类别中空闲率较高的线程传输较大的文件块,调用所述类别中空闲率较低的线程传输较小的文件块。
3.根据权利要求1所述的方法,其特征在于,所述发送端向所述接收端传输所述文件块前,所述发送端发送第一指令给所述接收端,所述接收端接收所述第一指令后响应NetGroup.Replication.Fetch.Result事件,并调用函数NetGroup.addWantObject从所述发送端接收所述文件块。
4.根据权利要求4所述的方法,其特征在于,所述接收端从所述发送端接收所述文件块后,所述接收端发送第二指令给所述发送端。
5.根据权利要求1所述的方法,其特征在于,所述发送端为客户端。
6.根据权利要求1所述的方法,其特征在于,所述接收端为客户端。
7.一种文件的传输***,其特征在于,包括发送端及接收端,所述发送端连接所述接收端,
其中,发送端,用于读取待传输的文件,并将所述文件拆分为多个文件块,
所述发送端,还用于根据预设策略调用线程通过函数NetGroup.addHaveObject传输所述文件块,
所述接收端,用于调用函数NetGroup.addWantObject从所述发送端接收所述文件块,
所述预设策略为:所述发送端设定待传输文件的优先级,并根据线程池中所有线程的空闲率将线程归入不同类别,并确定待传输文件的优先级与线程类别的对应关系,并根据待传输文件拆分的文件块的大小,调用每个类别中相应的线程传输对应优先级的文件的文件块。
8.根据权利要求7所述的***,其特征在于,所述发送端为客户端。
9.根据权利要求7所述的***,其特征在于,所述接收端为客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101113135A CN102611760A (zh) | 2012-04-16 | 2012-04-16 | 一种文件的传输方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101113135A CN102611760A (zh) | 2012-04-16 | 2012-04-16 | 一种文件的传输方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102611760A true CN102611760A (zh) | 2012-07-25 |
Family
ID=46528910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101113135A Pending CN102611760A (zh) | 2012-04-16 | 2012-04-16 | 一种文件的传输方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102611760A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237049A (zh) * | 2013-03-18 | 2013-08-07 | 北京易华录信息技术股份有限公司 | 一种文件传输方法及装置 |
CN105450785A (zh) * | 2016-01-26 | 2016-03-30 | 青岛海信电器股份有限公司 | 一种文件传输方法和装置 |
CN106790633A (zh) * | 2017-01-03 | 2017-05-31 | 北京电子工程总体研究所 | 一种基于优先级动态调整的远程多文件传输方法 |
CN108429799A (zh) * | 2018-03-01 | 2018-08-21 | 北京天融信网络安全技术有限公司 | 批量文件的并行传输方法、装置及存储介质 |
CN113326124A (zh) * | 2021-05-20 | 2021-08-31 | 深圳证券通信有限公司 | 一种用于预先设定文件传输任务优先级的方法 |
CN113411393A (zh) * | 2021-06-17 | 2021-09-17 | 中国工商银行股份有限公司 | 文件推送方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945538A (zh) * | 2006-10-27 | 2007-04-11 | 北京金山软件有限公司 | 基于多核cpu架构的网游服务器的数据分配方法及*** |
CN101114867A (zh) * | 2006-07-25 | 2008-01-30 | 深圳Tcl工业研究院有限公司 | 一种多信道同步传输的方法及*** |
CN101938297A (zh) * | 2009-06-29 | 2011-01-05 | 上海易狄欧电子科技有限公司 | 蓝牙链路的数据传输方法及蓝牙主设备 |
CN102307198A (zh) * | 2011-08-30 | 2012-01-04 | 苏州阔地网络科技有限公司 | 一种音视频数据的传输方法 |
CN102663104A (zh) * | 2012-04-16 | 2012-09-12 | 苏州阔地网络科技有限公司 | 一种文件传输方法及*** |
-
2012
- 2012-04-16 CN CN2012101113135A patent/CN102611760A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114867A (zh) * | 2006-07-25 | 2008-01-30 | 深圳Tcl工业研究院有限公司 | 一种多信道同步传输的方法及*** |
CN1945538A (zh) * | 2006-10-27 | 2007-04-11 | 北京金山软件有限公司 | 基于多核cpu架构的网游服务器的数据分配方法及*** |
CN101938297A (zh) * | 2009-06-29 | 2011-01-05 | 上海易狄欧电子科技有限公司 | 蓝牙链路的数据传输方法及蓝牙主设备 |
CN102307198A (zh) * | 2011-08-30 | 2012-01-04 | 苏州阔地网络科技有限公司 | 一种音视频数据的传输方法 |
CN102663104A (zh) * | 2012-04-16 | 2012-09-12 | 苏州阔地网络科技有限公司 | 一种文件传输方法及*** |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237049A (zh) * | 2013-03-18 | 2013-08-07 | 北京易华录信息技术股份有限公司 | 一种文件传输方法及装置 |
CN105450785A (zh) * | 2016-01-26 | 2016-03-30 | 青岛海信电器股份有限公司 | 一种文件传输方法和装置 |
CN105450785B (zh) * | 2016-01-26 | 2019-12-06 | 青岛海信电器股份有限公司 | 一种文件传输方法和装置 |
CN106790633A (zh) * | 2017-01-03 | 2017-05-31 | 北京电子工程总体研究所 | 一种基于优先级动态调整的远程多文件传输方法 |
CN106790633B (zh) * | 2017-01-03 | 2019-11-08 | 北京电子工程总体研究所 | 一种基于优先级动态调整的远程多文件传输方法 |
CN108429799A (zh) * | 2018-03-01 | 2018-08-21 | 北京天融信网络安全技术有限公司 | 批量文件的并行传输方法、装置及存储介质 |
CN113326124A (zh) * | 2021-05-20 | 2021-08-31 | 深圳证券通信有限公司 | 一种用于预先设定文件传输任务优先级的方法 |
CN113411393A (zh) * | 2021-06-17 | 2021-09-17 | 中国工商银行股份有限公司 | 文件推送方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102611760A (zh) | 一种文件的传输方法及*** | |
US10043220B2 (en) | Method, device and storage medium for data processing | |
CN102469064B (zh) | 通信实现方法及通信设备 | |
CN101951411A (zh) | 云调度***及方法以及多级云调度*** | |
CN103401934A (zh) | 获取日志数据的方法和*** | |
CN102663104A (zh) | 一种文件传输方法及*** | |
CN107589990B (zh) | 一种基于线程池的数据通讯的方法及*** | |
CN103139732A (zh) | 一种改进的短信发送方法及*** | |
CN102364457A (zh) | 一种文档转换方法及*** | |
CN102638457B (zh) | 一种服务器资源自动分配方法及*** | |
CN104866528A (zh) | 多平台数据采集方法及*** | |
CN103037000A (zh) | 一种发布订阅***及其通知消息处理方法 | |
CN104317947A (zh) | 一种基于海量数据的实时结构化数据比对*** | |
CN111124708B (zh) | 面向微服务的批推理方法、服务器和计算机可读存储介质 | |
CN105208004A (zh) | 一种基于obd设备的数据入库方法 | |
CN104199738A (zh) | 一种多数据处理设备协同工作方法及*** | |
CN104980254A (zh) | 因特网信息处理*** | |
EP1659507A3 (en) | Publishing documents in a publish subscribe data processing system | |
CN100563264C (zh) | 页面数据传递方法、***及服务器 | |
CN107566514A (zh) | 一种分布式存储***中控制元数据请求数量的方法 | |
CN104079368B (zh) | 一种应用软件的测试数据传输方法及服务器 | |
CN106209676A (zh) | 基于多设备的云主机***的数据处理方法及装置 | |
US10250515B2 (en) | Method and device for forwarding data messages | |
CN109471898B (zh) | 一种用于对数据进行共享分发的方法及*** | |
CN104050284A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120725 |