一种文件传输方法及系统技术方案

技术编号:16330055 阅读:34 留言:0更新日期:2017-09-29 21:15
本发明专利技术公开了一种文件传输方法,包括:将获取到的文件进行分段得到多个子文件,其中各所述子文件所占用的空间均小于内存的剩余容量;按照各所述子文件在所述文件中的位置分别为各所述子文件添加序列号;将各所述子文件依次写入服务器的内存以发送到对应的接收端。由此可见,本方法对文件进行了分段,可以避免内存溢出的问题。此外,本发明专利技术还公开一种文件传输系统,效果如上所述。

【技术实现步骤摘要】
一种文件传输方法及系统
本专利技术涉及集群
,特别是涉及一种文件传输方法及系统。
技术介绍
消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。其中,评价一个消息中间件的重要指标是传输文件的性能,尤其是传输大文件。传统的文件传输方式是将整个文件读入内存,然后再整体发送给接收端。该方式虽然能够保证文件的完整性,但当文件的容量过大时,内存容量不够就会造成内存溢出问题,从而无法正常传输文件。由此可见,在文件传输过程中,如何克服内存溢出的问题是本领域技术人员亟待解决地问题。
技术实现思路
本专利技术的目的是提供一种文件传输方法及系统,用于在文件传输过程中,克服内存溢出的问题。为解决上述技术问题,本专利技术提供一种文件传输方法,包括:将获取到的文件进行分段得到多个子文件,其中各所述子文件所占用的空间均小于内存的剩余容量;按照各所述子文件在所述文件中的位置分别为各所述子文件添加序列号;将各所述子文件依次写入服务器的内存以发送到对应的接收端。优选地,在对所述文件进行分段之前还包括:判断所述文件所占用的空间是否大于所述内存的剩余容量;其中,如果是,则对所述文件进行分段。优选地,还包括:为各所述子文件添加所述文件对应的统一组号。优选地,所述将获取到的文件进行分段得到多个子文件具体为:按照所述内存的剩余容量和当前带宽将所述文件分段得到多个所述子文件。优选地,还包括:持续监听接收端口,并将所述接收端口中接收到的所述子文件放入接收端,直到所述接收端接收到全部的所述子文件为止;其中,所述接收端按照所述序列号的顺序将各所述子文件进行拼接以得到所述文件。为解决上述技术问题,本专利技术提供一种文件传输系统,包括:分段模块,用于将获取到的文件进行分段得到多个子文件,其中各所述子文件所占用的空间均小于内存的剩余容量;第一添加模块,用于按照各所述子文件在所述文件中的位置分别为各所述子文件添加序列号;写入模块,用于将各所述子文件依次写入服务器的内存以发送到对应的接收端。优选地,还包括:判断模块,用于在对所述文件进行分段之前判断所述文件所占用的空间是否大于所述内存的剩余空间;其中,如果是,则触发所述分段模块。优选地,还包括:第二添加模块,用于为各所述子文件添加所述文件对应的统一组号。优选地,所述分段模块具体按照所述内存的剩余空间和当前带宽将所述文件分段得到多个所述子文件。优选地,还包括:监控模块,用于持续监听接收端口,并将所述接收端口中接收到的所述子文件放入接收端,直到所述接收端接收到全部的所述子文件为止;其中,所述接收端按照所述序列号的顺序将各所述子文件进行拼接以得到所述文件。本专利技术所提供的文件传输方法,该方法能够将文件进行分段,使得每个子文件所占的空间都小于内存的剩余容量,然后再将每个子文件依次写入内存以进行文件的传输。由此可见,本方法可以避免内存溢出的问题。此外,本专利技术还提供一种文件传输系统,效果如上所述。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种文件传输方法的流程图;图2为本专利技术实施例提供的另一种文件传输方法的流程图;图3为本专利技术实施例提供的另一种文件传输方法的流程图;图4为本专利技术实施例提供的一种文件传输系统的结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本专利技术保护范围。本专利技术的核心是提供一种文件传输方法及系统,用于在文件传输过程中,克服内存溢出的问题。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。图1为本专利技术实施例提供的一种文件传输方法的流程图。如图1所示,文件传输方法包括:S10:将获取到的文件进行分段得到多个子文件,其中各子文件所占用的空间均小于内存的剩余容量。在具体实施中,如果待发送的文件所占的空间大于当前服务器的内存的剩余容量的话,则将文件直接写入内存会导致内存溢出的问题。本专利技术中将文件进行分段得到多个子文件,而每个子文件所占用的空间均小于内存的剩余容量。需要说明的是,如何对一个文件进行分段本专利技术不做限定,只要保证每个子文件所占用的空间小于内存的剩余容量即可。作为一种优选地实施方式,在其他实施例中,将获取到的文件进行分段得到多个子文件具体为:按照内存的剩余容量和当前带宽将文件分段得到多个子文件。可以理解的是,这里的分段原则就是依据两个参数,一个是内存的剩余容量,另一个是当前带宽。对于第一个参数,再此不作赘述,对于第二个参数来说,是防止各子文件过大,而当前带宽较低时,文件传输过慢的问题。例如,当前内存的剩余容量是2G,文件所占用的空间为3G,则按照各子文件所占用的空间均小于内存的剩余容量进行分段的话,可以将文件划分为3段,得到3个子文件,例如,第一个子文件为1G,第二个子文件为1G,第三个子文件为1G。但是由于当前网络带宽较低,如果将1G的子文件进行传输时,会导致传输过慢的问题,因此,基于这种情况可以将文件划分的段更多一些,例如划分为6段。需要说明的是,将一个文件划分为多段,并不是越多越好,也不是越少越好,需要综合考虑内存的剩余容量和当前带宽两个参数。S11:按照各子文件在文件中的位置分别为各子文件添加序列号。本步骤中为各子文件添加序列号的目的是,能够让接收端在接收到子文件后对各子文件进行拼接,防止出现子文件丢失以及拼接错误的问题。在具体实施中,可以在子文件的消息头中添加序列号。需要说明的是,各子文件的序列号是按照子文件在整个文件中的位置排列的。例如,一个文件依次分为五个子文件,分别是第一个子文件、第二个子文件、第三个子文件、第四个子文件、第五个子文件,则这些子文件的序列号可以依次为3、2、1、0、-1。在具体实施中,为了便于接收端判断是否接收完毕,可以通过序列号来体现结束标志,例如将序列号为-1作为结束标志,那么接收端在对文件进行分段时,将最后一个子文件的序列号设置为-1。可以理解的是,序列号具体为何数字,以何标志作为结束标志均可以根据实际情况设定,本专利技术不再限定。S12:将各子文件依次写入服务器的内存以发送到对应的接收端。需要说明的是,本步骤中的子文件放入的队列中是按照在文件中的位置顺序放入的,例如一个子文件在文件中要先于另一个子文件,则该子文件在队列的位置就比另一个子文件的位置靠前,换句话说,子文件在传输过程中是按照在文件中的位置的先后顺序传输的,这样防止传输混乱。本实施例提供的文件传输方法,能够将文件进行分段,使得每个子文件所占的空间都小于内存的剩余容量,然后再将每个子文件依次写入内存以进行文件的传输。由此可见,本方法可以避免内存溢出的问题。图2为本专利技术实施例提供的另一种文件传输方法的流程图。如图2所示,作为优选地实施方式,在对本文档来自技高网
...
一种文件传输方法及系统

【技术保护点】
一种文件传输方法,其特征在于,包括:将获取到的文件进行分段得到多个子文件,其中各所述子文件所占用的空间均小于内存的剩余容量;按照各所述子文件在所述文件中的位置分别为各所述子文件添加序列号;将各所述子文件依次写入服务器的内存以发送到对应的接收端。

【技术特征摘要】
1.一种文件传输方法,其特征在于,包括:将获取到的文件进行分段得到多个子文件,其中各所述子文件所占用的空间均小于内存的剩余容量;按照各所述子文件在所述文件中的位置分别为各所述子文件添加序列号;将各所述子文件依次写入服务器的内存以发送到对应的接收端。2.根据权利要求1所述的文件传输方法,其特征在于,在对所述文件进行分段之前还包括:判断所述文件所占用的空间是否大于所述内存的剩余容量;其中,如果是,则对所述文件进行分段。3.根据权利要求1所述的文件传输方法,其特征在于,还包括:为各所述子文件添加所述文件对应的统一组号。4.根据权利要求1所述的文件传输方法,其特征在于,所述将获取到的文件进行分段得到多个子文件具体为:按照所述内存的剩余容量和当前带宽将所述文件分段得到多个所述子文件。5.根据权利要求1-4任意一项所述的文件传输方法,其特征在于,还包括:持续监听接收端口,并将所述接收端口中接收到的所述子文件放入所述接收端,直到所述接收端接收到全部的所述子文件为止;其中,所述接收端按照所述序列号的顺序将各所述子文件进行拼接以得到所述文件。6.一种文件传输系统,其特征...

【专利技术属性】
技术研发人员:张宏宽王蒴韩锋冷静
申请(专利权)人:山东中创软件商用中间件股份有限公司
类型:发明
国别省市:山东,37

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

1