CN112637343A - 文件传输方法、装置及*** - Google Patents
文件传输方法、装置及*** Download PDFInfo
- Publication number
- CN112637343A CN112637343A CN202011538063.4A CN202011538063A CN112637343A CN 112637343 A CN112637343 A CN 112637343A CN 202011538063 A CN202011538063 A CN 202011538063A CN 112637343 A CN112637343 A CN 112637343A
- Authority
- CN
- China
- Prior art keywords
- file
- client
- server
- thread
- component
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000005540 biological transmission Effects 0.000 title claims abstract description 64
- 238000004891 communication Methods 0.000 claims abstract description 62
- 238000003860 storage Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 239000012634 fragment Substances 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种文件传输方法、装置及***,涉及通信技术领域,该方法应用于客户端,客户端包括文件下载组件;该方法包括:利用目标协议向服务端发送待上传文件;目标协议用于根据一次通信请求建立客户端与服务端之间的通信连接;与服务端进行多线程通信,利用文件下载组件接收待下载文件。本法发明实施例利用目标协议可以根据一次通信请求建立客户端与服务端之间永久的通信连接,减少了发送大文件切片时基于通信请求建立通信连接的次数,提升大文件传输效率。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种文件传输方法、装置及***。
背景技术
现有的基于web浏览器的大文件传输的客户端协议,主要基于http协议(超文本传输协议),因http协议报文比较冗余,而且获得请求的参数有限制,对于大文件在http协议上的传输,http协议会对体进行分隔,每一个分隔之间都是一个附件,而对于http协议的请求文件有单次最大的提交限制,因此,对于大文件传输,需要进行切片,分片,例如如果文件切成10片,需要发送10个http请求,而每一次链接需要重新建立,导致大文件传输效率较低。
发明内容
本发明提供了一种文件传输方法、装置及***,可以基于目标协议优化大文件上传流程,提升大文件传输效率。
第一方面,本发明实施例提供了一种文件传输方法,该方法应用于客户端,所述客户端包括文件下载组件;所述方法包括:利用目标协议向服务端发送待上传文件;所述目标协议用于根据一次通信请求建立所述客户端与服务端之间的通信连接;与所述服务端进行多线程通信,利用所述文件下载组件接收待下载文件。
第二方面,本发明实施例还提供一种文件传输方法,该方法应用于服务端,所述方法包括:利用目标协议接收待上传文件;所述目标协议用于根据一次通信请求建立客户端与所述服务端之间的通信连接;通过多路复用组件对所述目标文件进行存储操作;与客户端进行多线程通信,向所述客户端发送待下载文件。
第三方面,本发明实施例还提供一种文件传输装置,该装置应用于客户端,所述装置包括:第一发送模块,用于利用目标协议向服务端发送待上传文件;所述目标协议用于根据一次通信请求建立所述客户端与服务端之间的通信连接;第一接收模块,用于与所述服务端进行多线程通信,利用所述文件下载组件接收待下载文件。
第四方面,本发明实施例还提供一种文件传输装置,该装置应用于服务端,所述装置包括:第二接收模块,用于利用目标协议接收待上传文件;所述目标协议用于根据一次通信请求建立客户端与所述服务端之间的通信连接;存储模块,用于通过多路复用组件对所述目标文件进行存储操作;第二发送模块,用于与客户端进行多线程通信,向所述客户端发送待下载文件。
第五方面,本发明实施例还提供一种文件传输***,该***包括客户端和服务端;所述客户端与所述服务端通信连接;所述客户端包括上述文件传输装置;所述服务端包括上述文件传输装置。
第六方面,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述文件传输方法。
第七方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述文件传输方法的计算机程序。
本发明实施例带来了以下有益效果:本发明实施例提供了一种文件传输方法,该方案应用于客户端,客户端包括文件下载组件;该方法包括:利用目标协议向服务端发送待上传文件;目标协议用于根据一次通信请求建立客户端与服务端之间的通信连接;与服务端进行多线程通信,利用文件下载组件接收待下载文件。本发明实施例利用目标协议可以根据一次通信请求建立客户端与服务端之间永久的通信连接,减少了发送大文件切片时基于通信请求建立通信连接的次数,提升大文件传输效率。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用于客户端的文件传输方法流程图;
图2为本发明实施例提供的应用于服务端的文件传输方法流程图;
图3为本发明实施例提供的websocket协议优化大文件上传流程示意图;
图4为本发明实施例提供的服务器端IO多路复用服务器端解析流程示意图;
图5为本发明实施例提供的客户端嵌入宿主环境多线程下载大文件流程示意图;
图6为本发明实施例提供的应用于客户端的文件传输装置结构框图;
图7为本发明实施例提供的应用于服务端的文件传输装置结构框图;
图8为本发明实施例提供的计算机设备结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于服务器端接收来说,基于web(World Wide Web,全球广域网或万维网)浏览器的大文件传输的服务器端解析,如使用Java服务端进行文件的解析,主要通过传统的IO(Input/Output,输入/输出)从http协议中进行读取文件流,例如上述的大文件切片,切成10片,每一片都用IO进行读取,读取完再进行组装,这样的读取效率很低。
对于客户端下载这一动作来说,同样是采用传统的IO进行下载,因客户端浏览器的限制,无法采用多线程的下载策略,只能分片从服务器端的文件存储的路径直接进行下载,这种顺序下载策略,极大的降低了下载的速度,变成了单线程下载。
为了克服目前基于web的大文件传输遇到的协议包冗余、IO传输效率不高,下载单线程的问题,本发明实施例提供的一种文件传输方法、装置及***,首先,通过基于http协议基础的websocket协议的双端通信,在客户端不断掉的同时一直保持着会话,优化了原有http协议的不足;其次,对于服务器端传统的IO进行进一步的优化,基于Unix的多路复用技术,采用NIO(NIO是jdk1.4加入的新功能,一般称为非阻塞IO,在1.4之前,JAVA中的都是BIO(堵塞IO))和纯异步IO,对IO进行优化,提升服务器端处理文件的速度;最后,在客户端浏览器中采用嵌入式技术,如Applet等做客户端,可以多线程和服务器端交互,从而解决掉单线程下载的问题。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种文件传输方法进行详细介绍。
本发明实施例提供了一种文件传输方法,参见图1所示的一种文件传输方法流程图,该方法应用于客户端,包括以下步骤:
步骤S102,利用目标协议向服务端发送待上传文件。
在本发明实施例中,目标协议用于根据一次通信请求建立客户端与服务端之间的通信连接。待上传文件和待下载文件可以是数据量较大的大文件。使用目标协议之后,在传输文件时,将文件切片后,多个切片共享一次目标协议链接通道,从协议级的角度,大文件传输一次传递,无需频繁连续开启关闭请求,而是一次建立传完关闭,这种提升的方式,极大的优化了大文件传输的效果。
步骤S104,与服务端进行多线程通信,利用文件下载组件接收待下载文件。
在本发明实施例中,客户端包括文件下载组件。客户端需要嵌入客户端环境在浏览器的宿主环境中,这样能屏蔽掉原有浏览器的对远程服务资源的链接线程,通过载入客户端嵌入式的环境,可以利用客户端自带的多线程处理方式,与服务器端进行多线程通信,让客户端也能多线程去下载服务器端的待下载文件的分片资源,然后再客户端部分进行分片的按顺序组装。
本发明实施例提供了一种文件传输方法,该方案应用于客户端,客户端包括文件下载组件;该方法包括:利用websocket协议向服务端发送待上传文件;与服务端进行多线程通信,利用文件下载组件接收待下载文件。本法发明实施例利用websocket协议实现大文件上传流程,提升大文件传输效率。
在一个实施例中,目标协议为websocket协议。
在本发明实施例中,采用websocket协议,替换原有http协议进行大文件传输,在传输的开始,建立websocket通道,客户端发包,服务端开始接包,双方握手建立通信之后,客户端大文件开始切片,如果是http协议,每一个切片都会发起一个http请求,而使用websocket协议之后,多个切片共享一次websocket链接通道,从协议级的角度,大文件传输一次传递,无需频繁连续开启关闭请求,而是一次建立传完关闭,这种提升的方式,极大的优化了大文件传输的效果。
需要说明的是,WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在一个实施例中,文件下载组件为Applet组件。
在本发明实施例中,Applet是采用Java编程语言编写的小应用程序,该程序可以包含在HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同。
需要说明的是,文件下载组件可以根据实际需要进行选取,本发明实施例对此不作具体限定。
在一个实施例中,利用所述文件下载组件接收待下载文件,可以按照如下步骤执行:
获取待下载文件所需的存储空间信息和线程信息;根据存储空间信息和线程信息确定线程平均下载字节信息;根据线程平均下载字节信息确定线程下载位置范围信息;利用文件下载组件按照下载位置范围信息接收待下载文件。
在本发明实施例中,存储空间信息用于确定待下载文件的大小。线程信息根据CPU预先确定,对于所开线程的最大数量=CPU核数+1。线程平均下载字节信息用于确定平均每个线程需要下载多少个字节的数据。下载位置范围信息用于确定各个线程要下载的字节范围。
本发明实施例中还提供了一种文件传输方法,参见图2所示的应用于服务端的文件传输方法流程图,该方法应用于服务端,具体包括如下步骤:
步骤S202,利用目标协议接收待上传文件。
在本发明实施例中,目标协议用于根据一次通信请求建立客户端与服务端之间的通信连接。目标协议可以为websocket协议。
步骤S204,通过多路复用组件对目标文件进行存储操作。
服务器端接收包,默认是一片一片接收,接收后,根据传递的顺序,逐个通过传统IO在服务器端存储分片,传统IO是典型的流的导入,有源有目的的流入。在本发明实施例中,利用操作***的机制,例如基于IO多路复用,调用纯异步IO的接口,如使用sendfile函数,可以减少操作***用户态到内核态的时间片和CPU(Central Processing Unit,中央处理器)的切换。
步骤S206,与客户端进行多线程通信,向客户端发送待下载文件。
在本发明实施例中,服务端与客户端进行多线程通信,可以并行向客户端发送待下载文件,进而提升文件传输效率。
在一个实施例中,目标协议为websocket协议。
在一个实施例中,多路复用组件为epoll组件。
下面结合具体实施对该方案的实施过程进行说明。
参见图3所示的websocket协议优化大文件上传流程示意图,首先对基于websocket协议优化大文件上传流程进行说明,具体可以执行如下步骤:
1.服务器端侦听某端口,接受websocket请求,后面可用nginx作反向代理,外部看到的将是80端口;
2.客户端连接服务器的websocket地址,连接成功后,首先传送一个NEW_FILE的数据包,里面带上要传输的文件名;
3.服务器端收到NEW_FILE包后,解析出文件名,并创建目标文件,再回复ACK_NEW_FILE的数据包;
4.客户端收到ACK_NEW_FILE的数据包后,检查回应的code,如是成功码,则启动一个线程,该线程负责将源文件的数据封装成多个FILE_DATA数据包,传送这些FILE_DATA数据至服务器端;
5.服务器端接收FILE_DATA数据包,解析出里面的文件数据,将文件数据写入文件;
6.客户端发送完源文件数据后,再传送一个FILE_END数据包,该文件包中带上源文件的MD5值;
7.服务器端收到FILE_END数据包后,比对源文件的MD5值与目标文件的MD5值,如相同,则认为传输成功,并返回ACK_FILE_END数据包,里面带上成功码;
8.客户端收到ACK_FILE_END数据包,检查回应的code,如是成功码,则认为传输成功,否则认为传输失败。
通过上述的八步,建立客户端和服务器端的通信管道,替代了原有基于Http协议的传输,可以通过上述的八步,大文件上传过程中分片FILE_DATA数据包,并没有连接的断开。
参见图4所示的服务器端IO多路复用服务器端解析流程示意图,对服务器端IO多路复用服务器端解析流程进行说明。
服务器端解析大文件传输分片的过程中,是基于传统的IO操作,而传统的IO操作对应的***调用是read,write等,这些是阻塞式的操作,而通过服务器端IO多路复用技术,例如通过epoll进行内核级状态变化通知,进行传输流程:
1.服务端文件描述符rfd代表要执行read操作的TCP socket,rfd已被注册到一个epoll实例中;
2.客户端向rfd写了2kb数据;
3.服务端调用epoll_wait返回,rfd可执行read操作;
4.服务端从rfd中读取了1kb数据;
5.服务端又调用了一次epoll_wait。
在第5步的epoll_wait调用不会返回,而对应的客户端会因为服务端没有返回对应的response而超时重试,epoll_wait只会在状态变化时才会通知程序进行处理。第3步epoll_wait会返回,是因为客户端写了数据,导致rfd状态被改变了,第3步的epoll_wait已经消费了这个事件,所以第5步的epoll_wait不会返回。
需要配合非阻塞IO来解决上面的问题。对需要监听的文件描述符加上非阻塞IO标识,只在read或者write返回EAGAIN或EWOULDBLOCK错误时,才调用epoll_wait等待下次状态改变发生,通过上述方式,可以确保每次epoll_wait返回之后,文件描述符中没有读到一半或写到一半的数据。
而之所以选择通过epoll作为服务器端IO多路复用的***调用,是因为epoll优于select&poll,在需要同时监听的文件描述符数量增加时,select&poll是O(N)的复杂度,epoll是O(1),在N很小的情况下,差距不会特别大,但如果N很大的前提下,一次O(N)的循环可要比O(1)慢很多,所以高性能的网络服务器都会选择epoll进行IO多路复用。epoll内部用一个文件描述符挂载需要监听的文件描述符,这个epoll的文件描述符可以在多个线程/进程共享。
参见图5所示的客户端嵌入宿主环境多线程下载大文件流程示意图,对客户端嵌入宿主环境多线程下载大文件流程进行说明。
关于在客户端嵌入JAVA的Applet的客户端宿主环境,就可以在浏览器端发起多线程的大文件下载分片处理,其主要流程如下:
1.计算目标文件的大小,下载大文件分片之前,通常情况下是要知道该文件的大小,这样才好在本地留好足量的空间来存储,免得出现还未下载完,存储空间就爆了的情况。
2.根据环境推导要开启几个线程数目,需要的文件在服务器上,要开通固定的线程和通道进行下载,一般情况下这是由CPU去决定的,但是CPU开启线程的数目也是有限的,不是想开几个线程就开几个线程。对于所开线程的最大数量=(CPU核数+1)。
3.计算平均每个线程需要下载多少个字节的数据,理想情况下多线程下载是按照平均分配原则的,即:单线程下载的字节数等于文件总大小除以开启的线程总条数,当不能整除时,则最后开启的线程将剩余的字节一起下载。
4.计算各个线程要下载的字节范围,多线程下载也需要明确各个下载的字节范围,这样才能将文件高效、快速、准确的下载下来。即在下载过程中,各个线程都要明确自己的开始索引和结束索引。
这里总结出一个公式,以startIndex表示开始索引,以threadId表示线程位置,以endIndex表示结束索引,从而利用该公式可以确定待下载文件的位置,每个线程下载的字节范围:
startIndex=threadId乘以blockSize;
endIndex=(threadId+1)乘以blockSize-1;
如果是最后一条线程,那么结束索引为:
endIndex=totalSize–1。
5.通过for循环开启客户端子线程:
6.获取各个线程的目标文件的开始索引和结束索引的范围,告诉服务器,只要目标段的数据,这样就需要通过Http协议的请求头去设置(range:bytes=0-499)。
connection.setRequestProperty("range","bytes="+startIndex+"-"+endIndex);
7.使用RandomAccessFile随机文件访问类。创建一个RandomAccessFile对象,将返回的字节流写到文件指定的范围。
RandomAccessFile对象写字节流之前,需要移动RandomAccessFile对象到指定的位置开始写raf.seek(startIndex)。
需要说明的是,本发明实施例依托于web浏览器,不是定制客户端环境,仅仅在客户端的环境中***客户端嵌入式的插件作为下载组件。本发明实施例本质是通过基于web浏览器的协议上的更改,服务器端的优化,客户端环境的嵌入从而完成大文件传输的优化。
另外需要说明的是,Websocket协议也可以用自定义协议来进行替换,但该协议需要基于http协议,并不通用。其次,服务器端优化手段基于epoll函数来进行,而该***调用在其他unix的发行版中,例如freebsd中,可以使用kqueue等***调用来替代epoll函数。关于嵌入式的环境,目前采用基于浏览器的applet的java客户端环境,同样也可以使用其他语言的浏览器嵌入式的环境,如基于flash的flex环境也可以。
本发明实施例提供了一种文件传输方法,可以解决基于web浏览器的大文件传输的过程中,遇到的上传文件比较慢,下载文件比较慢,超时等一系列的问题,通过转换上传文件的协议的更换,和嵌入浏览器客户端的一个宿主环境,解决大文件上传慢的这一弊病,可以大幅提升大文件的上传效率,通过对服务器解析大文件的分片文件采用新IO技术,可以很快的将客户端浏览器传递过来的文件,进行存储,同时下载文件也更快。
本发明实施例中还提供了一种文件传输装置,如下面的实施例所述。由于该装置解决问题的原理与文件传输方法相似,因此该装置的实施可以参见文件传输方法的实施,重复之处不再赘述。参见图6所示的应用于客户端的文件传输装置结构框图,该装置包括:
第一发送模块61,用于利用目标协议向服务端发送待上传文件;目标协议用于根据一次通信请求建立客户端与服务端之间的通信连接;第一接收模块62,用于与服务端进行多线程通信,利用文件下载组件接收待下载文件。
在一个实施例中,目标协议为websocket协议。
在一个实施例中,文件下载组件为Applet组件。
在一个实施例中,第一接收模块,具体用于:获取待下载文件所需的存储空间信息和线程信息;根据存储空间信息和线程信息确定线程平均下载字节信息;根据线程平均下载字节信息确定线程下载位置范围信息;利用文件下载组件按照下载位置范围信息接收待下载文件。
本发明实施例中还提供了一种文件传输装置,如下面的实施例所述。由于该装置解决问题的原理与文件传输方法相似,因此该装置的实施可以参见文件传输方法的实施,重复之处不再赘述。参见图7所示的应用于服务端的文件传输装置结构框图,该装置包括:
第二接收模块71,用于利用目标协议接收待上传文件;目标协议用于根据一次通信请求建立客户端与服务端之间的通信连接;存储模块72,用于通过多路复用组件对目标文件进行存储操作;第二发送模块73,用于与客户端进行多线程通信,向客户端发送待下载文件。
在一个实施例中,目标协议为websocket协议。
在一个实施例中,多路复用组件为epoll组件。
本发明实施例还提供一种文件传输***,该***包括客户端和服务端;客户端与服务端通信连接;客户端包括上述文件传输装置;服务端包括上述文件传输装置。
本发明实施例还提供一种计算机设备,参见图8所示的计算机设备结构示意框图,该计算机设备包括存储器81、处理器82及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一种文件传输方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任一种文件传输方法的计算机程序。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (17)
1.一种文件传输方法,其特征在于,应用于客户端,所述客户端包括文件下载组件;所述方法包括:
利用目标协议向服务端发送待上传文件;所述目标协议用于根据一次通信请求建立所述客户端与服务端之间的通信连接;
与所述服务端进行多线程通信,利用所述文件下载组件接收待下载文件。
2.根据权利要求1所述的方法,其特征在于,
所述目标协议为websocket协议。
3.根据权利要求1所述的方法,其特征在于,
所述文件下载组件为Applet组件。
4.根据权利要求3所述的方法,其特征在于,利用所述文件下载组件接收待下载文件,包括:
获取待下载文件所需的存储空间信息和线程信息;
根据所述存储空间信息和所述线程信息确定线程平均下载字节信息;
根据所述线程平均下载字节信息确定线程下载位置范围信息;
利用所述文件下载组件按照所述下载位置范围信息接收待下载文件。
5.一种文件传输方法,其特征在于,应用于服务端,所述方法包括:
利用目标协议接收待上传文件;所述目标协议用于根据一次通信请求建立客户端与所述服务端之间的通信连接;
通过多路复用组件对所述目标文件进行存储操作;
与客户端进行多线程通信,向所述客户端发送待下载文件。
6.根据权利要求5所述的方法,其特征在于,
所述目标协议为websocket协议。
7.根据权利要求5所述的方法,其特征在于,
所述多路复用组件为epoll组件。
8.一种文件传输装置,其特征在于,应用于客户端,所述装置包括:
第一发送模块,用于利用目标协议向服务端发送待上传文件;所述目标协议用于根据一次通信请求建立所述客户端与服务端之间的通信连接;
第一接收模块,用于与所述服务端进行多线程通信,利用所述文件下载组件接收待下载文件。
9.根据权利要求8所述的装置,其特征在于,
所述目标协议为websocket协议。
10.根据权利要求8所述的装置,其特征在于,
所述文件下载组件为Applet组件。
11.根据权利要求10所述的装置,其特征在于,所述第一接收模块,具体用于:
获取待下载文件所需的存储空间信息和线程信息;
根据所述存储空间信息和所述线程信息确定线程平均下载字节信息;
根据所述线程平均下载字节信息确定线程下载位置范围信息;
利用所述文件下载组件按照所述下载位置范围信息接收待下载文件。
12.一种文件传输装置,其特征在于,应用于服务端,所述装置包括:
第二接收模块,用于利用目标协议接收待上传文件;所述目标协议用于根据一次通信请求建立客户端与所述服务端之间的通信连接;
存储模块,用于通过多路复用组件对所述目标文件进行存储操作;
第二发送模块,用于与客户端进行多线程通信,向所述客户端发送待下载文件。
13.根据权利要求12所述的装置,其特征在于,
所述目标协议为websocket协议。
14.根据权利要求12所述的装置,其特征在于,
所述多路复用组件为epoll组件。
15.一种文件传输***,其特征在于,包括客户端和服务端;所述客户端与所述服务端通信连接;
所述客户端包括权利要求8-11任一项所述的文件传输装置;
所述服务端包括权利要求12-14任一项所述的文件传输装置。
16.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011538063.4A CN112637343A (zh) | 2020-12-23 | 2020-12-23 | 文件传输方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011538063.4A CN112637343A (zh) | 2020-12-23 | 2020-12-23 | 文件传输方法、装置及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112637343A true CN112637343A (zh) | 2021-04-09 |
Family
ID=75321540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011538063.4A Pending CN112637343A (zh) | 2020-12-23 | 2020-12-23 | 文件传输方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637343A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113155260A (zh) * | 2021-04-17 | 2021-07-23 | 福州夸克科技有限公司 | 一种远程修改电子秤价格的方法 |
CN113965561A (zh) * | 2021-10-20 | 2022-01-21 | 中电科航空电子有限公司 | 一种基于异步事件驱动的机载文件传输*** |
CN114064264A (zh) * | 2021-09-16 | 2022-02-18 | 浪潮卓数大数据产业发展有限公司 | 基于实时通信的前端多线程渲染方法、装置及计算机介质 |
CN114416369A (zh) * | 2022-01-19 | 2022-04-29 | 重庆长安汽车股份有限公司 | 一种仪表内部数据分发方法及*** |
CN114448970A (zh) * | 2021-12-27 | 2022-05-06 | 天翼云科技有限公司 | 一种数据传输方法、装置及设备 |
CN115878676A (zh) * | 2023-02-08 | 2023-03-31 | 成都数联云算科技有限公司 | 一种预览文件的方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104320417A (zh) * | 2014-11-06 | 2015-01-28 | 北京安奇智联科技有限公司 | 移动终端和web终端之间互连及流传输和流媒体播放的方法 |
CN105338090A (zh) * | 2015-11-12 | 2016-02-17 | 浪潮软件集团有限公司 | 一种基于WebSocket的断点续传方法及装置 |
CN109862065A (zh) * | 2018-12-06 | 2019-06-07 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置和电子设备 |
CN111106996A (zh) * | 2019-12-28 | 2020-05-05 | 安徽微沃信息科技股份有限公司 | 一种基于WebSocket和缓存的多终端在线聊天*** |
CN111327694A (zh) * | 2020-02-10 | 2020-06-23 | 北京达佳互联信息技术有限公司 | 文件上传方法、装置、存储介质及电子设备 |
-
2020
- 2020-12-23 CN CN202011538063.4A patent/CN112637343A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104320417A (zh) * | 2014-11-06 | 2015-01-28 | 北京安奇智联科技有限公司 | 移动终端和web终端之间互连及流传输和流媒体播放的方法 |
CN105338090A (zh) * | 2015-11-12 | 2016-02-17 | 浪潮软件集团有限公司 | 一种基于WebSocket的断点续传方法及装置 |
CN109862065A (zh) * | 2018-12-06 | 2019-06-07 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置和电子设备 |
CN111106996A (zh) * | 2019-12-28 | 2020-05-05 | 安徽微沃信息科技股份有限公司 | 一种基于WebSocket和缓存的多终端在线聊天*** |
CN111327694A (zh) * | 2020-02-10 | 2020-06-23 | 北京达佳互联信息技术有限公司 | 文件上传方法、装置、存储介质及电子设备 |
Non-Patent Citations (4)
Title |
---|
丁桂芝丛书主编;但唐仁主编;李华忠,江柳副主编: "《嵌入式应用***开发实践》", 31 July 2013, 东软电子出版社 * |
墙威,王勇,曹蕙: "《湍流热对流的格子BOLTZMANN方法并行数值计算》", 31 October 2018 * |
王杉: "《Java面向对象程序设计》", 31 January 2018, 北京理工大学出版社 * |
霍丙乾: "《深入理解Kotlin协程》", 31 May 2020 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113155260A (zh) * | 2021-04-17 | 2021-07-23 | 福州夸克科技有限公司 | 一种远程修改电子秤价格的方法 |
CN114064264A (zh) * | 2021-09-16 | 2022-02-18 | 浪潮卓数大数据产业发展有限公司 | 基于实时通信的前端多线程渲染方法、装置及计算机介质 |
CN113965561A (zh) * | 2021-10-20 | 2022-01-21 | 中电科航空电子有限公司 | 一种基于异步事件驱动的机载文件传输*** |
CN113965561B (zh) * | 2021-10-20 | 2023-08-25 | 中电科航空电子有限公司 | 一种基于异步事件驱动的机载文件传输*** |
CN114448970A (zh) * | 2021-12-27 | 2022-05-06 | 天翼云科技有限公司 | 一种数据传输方法、装置及设备 |
CN114416369A (zh) * | 2022-01-19 | 2022-04-29 | 重庆长安汽车股份有限公司 | 一种仪表内部数据分发方法及*** |
CN114416369B (zh) * | 2022-01-19 | 2024-04-26 | 重庆长安汽车股份有限公司 | 一种仪表内部数据分发方法及*** |
CN115878676A (zh) * | 2023-02-08 | 2023-03-31 | 成都数联云算科技有限公司 | 一种预览文件的方法、装置、设备和介质 |
CN115878676B (zh) * | 2023-02-08 | 2023-05-05 | 成都数联云算科技有限公司 | 一种预览文件的方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112637343A (zh) | 文件传输方法、装置及*** | |
Marx et al. | Same standards, different decisions: A study of QUIC and HTTP/3 implementation diversity | |
US8935336B2 (en) | Optimizing program requests over a wide area network | |
US8069250B2 (en) | One-way proxy system | |
Grigorik | Making the web faster with HTTP 2.0 | |
CN112910967B (zh) | 在不稳定网络环境中的大文件的网络传输 | |
US20090316581A1 (en) | Methods, Systems and Computer Program Products for Dynamic Selection and Switching of TCP Congestion Control Algorithms Over a TCP Connection | |
KR101201140B1 (ko) | 요구-응답 전송 프로토콜들에 의한 신뢰성 있는 단방향메시징 | |
KR101846382B1 (ko) | 전송 계층에서 요청 가속을 시그널링하기 위한 시스템들 및 방법들 | |
JP2008541239A (ja) | 長い待ち時間リンクのhttpのパフォーマンスを増加させるための方法と装置 | |
US20190253511A1 (en) | Hybrid approach for performance enhancing proxies | |
US20100049785A1 (en) | Recovery of disconnected channels over a reliable protocol | |
US20030145101A1 (en) | Reduction of resource usage in TCP/IP implementation | |
CN110505123B (zh) | 丢包率的计算方法、服务器及计算机可读存储介质 | |
US11108890B2 (en) | Management client and device monitoring | |
KR102612711B1 (ko) | 네트워크 기반 서비스들을 위한 파이어 앤 포겟 오프로드 메커니즘 | |
US10536560B2 (en) | System and method for implementing augmented object members for remote procedure call | |
WO2013160805A1 (en) | Variable acknowledge rate to reduce bus contention in presence of communication errors | |
US20130246583A1 (en) | Method, system and server device for transmitting a digital resource in a client-server communication system | |
US20210168076A1 (en) | Congestion control method and related device | |
WO2024125106A1 (zh) | 数据传输方法、装置、设备及存储介质 | |
CN112688885B (zh) | 一种报文处理方法及装置 | |
CN116708597B (zh) | 一种数据处理方法及装置 | |
Cooper | An argument for soft layering of protocols | |
CN112702624B (zh) | 一种短视频播放效率的优化方法、***、介质及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210409 |
|
RJ01 | Rejection of invention patent application after publication |