CN106951380A - 一种客户端、服务端、数据传输方法及系统 - Google Patents

一种客户端、服务端、数据传输方法及系统 Download PDF

Info

Publication number
CN106951380A
CN106951380A CN201710159524.9A CN201710159524A CN106951380A CN 106951380 A CN106951380 A CN 106951380A CN 201710159524 A CN201710159524 A CN 201710159524A CN 106951380 A CN106951380 A CN 106951380A
Authority
CN
China
Prior art keywords
data
service end
client
slicer
data slicer
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
CN201710159524.9A
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.)
Shandong Inspur Business System Co Ltd
Original Assignee
Shandong Inspur Business System 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 Shandong Inspur Business System Co Ltd filed Critical Shandong Inspur Business System Co Ltd
Priority to CN201710159524.9A priority Critical patent/CN106951380A/zh
Publication of CN106951380A publication Critical patent/CN106951380A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种客户端、服务端、数据传输方法及系统,该客户端包括:设置至少两个缓存区的内存以及包括DMA模块的主控芯片,主控芯片向服务端发送获取数据请求;当接收到服务端传输的对应于获取数据请求的各个数据切片时,触发DMA模块;DMA模块根据主控芯片的触发,循环执行N1至N3,直至完成接收全部数据切片;N1:在至少两个缓存区中选取目标缓存区;N2:将服务端传输的各个数据切片写入到目标缓存区;N3:当目标缓存区写满时,判断是否接收到全部的数据切片;如果是,将目标缓存区的各个数据切片转存至存储区域;否则,将目标缓存区的数据切片转存至存储区域,并执行N1。因此本方案可以降低数据传输失败的概率。

Description

一种客户端、服务端、数据传输方法及系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种客户端、服务端、数据传输方法及系统。
背景技术
随着互联网技术的普及,互联网中各个机构间的数据传输越来越频繁。
目前,互联网中数据传输的方法通常为:服务端确定需要传输的数据后,直接将数据传输给客户端。
但是,在数据传输过程中可能会出现客户端的内存存储空间小于服务端传输数据的数据量大小的情况,以导致数据不能传输到客户端。因此,通过现有的数据传输方式进行数据传输时,数据传输失败的概率较高。
发明内容
本发明提供了一种客户端、服务端、数据传输方法及系统,可以降低数据传输失败的概率。
第一方面,本发明提供了一种客户端,该客户端包括:主控芯片以及内存,其中,所述主控芯片中包括直接内存存取DMA模块;其中,
所述内存设置至少两个缓存区;
所述主控芯片,用于向外部服务端发送获取数据请求;当接收到所述服务端传输的对应于所述获取数据请求的各个数据切片时,触发所述DMA模块;
所述DMA模块,用于根据所述主控芯片的触发,循环执行N1至N3,直至完成接收全部所述数据切片;
N1:在所述至少两个缓存区中选取目标缓存区;
N2:将外部服务端传输的各个数据切片写入到所述目标缓存区;
N3:当所述目标缓存区写满时,判断是否接收到全部的所述数据切片;如果是,将所述目标缓存区的各个所述数据切片转存至外部连接的存储区域;如果否,将所述目标缓存区的各个所述数据切片转存至所述存储区域,并执行N1。
优选地,
进一步包括:无线局域网WIFI模块;
所述WIFI模块,包括:软件开发工具包SDK和应用程序编程API接口;
所述主控芯片,用于向所述服务端发送获取数据请求时,触发所述WIFI模块;通过所述WIFI模块接收所述服务端传输的对应于所述获取数据请求的各个数据切片;
所述WIFI模块,用于当接收到所述主控芯片的触发时,根据所述SDK调用所述API接口,向所述服务端发送获取数据请求;根据所述SDK调用所述API接口接收所述服务端传输的对应于所述获取数据请求的各个数据切片,将各个所述数据切片传输至所述主控芯片。
优选地,
所述主控芯片,进一步包括:同步/异步串行收发USART模块;
所述USART模块,用于当所述主控芯片触发所述DMA模块时,将各个所述数据切片传输至所述DMA模块。
优选地,
进一步包括:安全数字输入输出卡SDIO总线;
所述SDIO总线,分别与所述内存和所述存储区域相连,用于将所述内存的各个所述数据切片传输至所述存储区域。
优选地,
进一步包括:电子标识模块;
所述电子标识模块,包括携带图形、文字以及功能说明的电子标识,用于向用户提供所述电子标识,以使用户根据所述电子标识触发所述主控芯片向所述服务端发送获取数据请求。
第二方面,本发明提供了一种服务端,该服务端包括:确定模块、切片模块、传输模块;其中,
所述确定模块,用于获取外部客户端发送的获取数据请求,并确定与所述获取数据请求对应的数据;
所述切片模块,用于根据预先设定的切片长度对所述数据进行切片处理,形成至少一个数据切片;
所述传输模块,用于将各个所述数据切片传输给所述客户端,循环执行M1至M2,直至完成传输全部所述数据切片;
M1:将各个所述数据切片传输至所述客户端中的目标缓存区;
M2:当所述目标缓存区写满时,判断全部的所述数据切片是否传输完成;如果否,确定未传输的各个所述数据切片,并执行M1。
第三方面,本发明提供了一种数据传输方法,应用于客户端,该方法可以包括:
在所述客户端部署DMA模块以及在所述客户端的内存中设置至少两个缓存区;
向外部服务端发送获取数据请求;
当接收到所述服务端传输的对应于所述获取数据请求的各个数据切片时,触发所述DMA模块;
利用所述DMA模块接收所述服务端传输的对应于所述获取数据请求的各个数据切片,利用所述DMA模块循环执行N1至N3,直至完成接收全部所述数据切片;
N1:在所述至少两个缓存区中选取目标缓存区;
N2:将外部服务端传输的各个数据切片写入到所述目标缓存区;
N3:当所述目标缓存区写满时,判断是否接收到全部的所述数据切片;如果是,将所述目标缓存区的各个所述数据切片转存至外部连接的存储区域;如果否,将所述目标缓存区的各个所述数据切片转存至所述存储区域,并执行N1。
优选地,
当所述客户端进一步包括WIFI模块时,
所述向外部服务端发送获取数据请求,包括:
触发所述WIFI模块根据所述SDK调用所述API接口,向所述服务端发送获取数据请求;
所述接收到所述服务端传输的对应于所述获取数据请求的各个数据切片,包括:
通过所述WIFI模块根据所述SDK调用所述API接口接收所述服务端传输的对应于所述获取数据请求的各个数据切片。
优选地,
在所述触发所述DMA模块之后,进一步包括:
利用USART模块将各个所述数据切片传输至所述DMA模块。
优选地,
在所述向外部服务端发送获取数据请求之前,进一步包括:
向用户提供包括携带图形、文字以及功能说明的电子标识,以使用户根据所述电子标识触发所述客户端向所述服务端发送获取数据请求。
第四方面,本发明提供了一种数据传输方法,应用于服务端,该方法可以包括:
获取外部客户端发送的获取数据请求,并确定与所述获取数据请求对应的数据;
根据预先设定的切片长度对所述数据进行切片处理,形成至少一个数据切片;
将各个所述数据切片传输给所述客户端,循环执行M1至M2,直至完成传输全部所述数据切片;
M1:将各个所述数据切片传输至所述客户端中的目标缓存区;
M2:当所述目标缓存区写满时,判断全部的所述数据切片是否传输完成;如果否,确定未传输的各个所述数据切片,并执行M1。
第五方面,本发明提供了一种数据传输的系统,包括:上述任一所述的客户端,以及上述任一所述的服务端;其中,
所述客户端与所述服务端通过socket通信方式连接。
本发明实施例提供了一种客户端、服务端、数据传输方法及系统,该客户端包括主控芯片以及设置了至少两个缓存区的内存。当主控芯片接收到服务端传输的对应于其发送的获取数据请求的各个数据切片时,触发DMA模块在缓存区中选取目标缓存区,并将数据切片写入到目标缓存区。当目标缓存区写满时,且接收了全部的数据切片则将目标缓存区的数据切片转存至连接的存储区域。当目标缓存区写满时,未接收到全部的数据切片,则将当前目标缓存区的数据切片转存至存储区域,并继续选取下一个目标缓存区,重复上述将数据切片写入到目标缓存区及判断是否接收到全部的数据切片的过程,直至客户端完成接收全部数据切片。通过上述可知,本方案在内存中设置了缓存区,利用缓存区写入服务端传输的数据,当一个缓存区写满后,将该缓存区的数据转存至存储区域,且选择下一个缓存区继续写入服务端传输的数据,从而减少发生由于内存存储空间不够导致不能接收服务端传输的数据的情况,因此本发明提供的方案可以降低数据传输失败的概率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种客户端的结构示意图;
图2是本发明一个实施例提供的一种包括WIFI模块的客户端的结构示意图;
图3是本发明一个实施例提供的一种包括USART模块的客户端的结构示意图;
图4是本发明一个实施例提供的一种包括SDIO总线的客户端的结构示意图;
图5是本发明一个实施例提供的一种包括电子标识模块的客户端的结构示意图;
图6是本发明一个实施例提供的一种服务端的结构示意图;
图7是本发明一个实施例提供的一种应用于客户端的数据传输方法的流程图;
图8是本发明一个实施例提供的一种应用于服务端的数据传输方法的流程图;
图9是本发明一个实施例提供的一种数据传输系统的结构示意图;
图10是本发明一个实施例提供的一种应用于数据传输系统的数据传输方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种客户端,该客户端包括:主控芯片101以及内存102,其中,所述主控芯片101中包括直接内存存取DMA模块1011;其中,
所述内存102设置至少两个缓存区1021;
所述主控芯片101,用于向外部服务端发送获取数据请求;当接收到所述服务端传输的对应于所述获取数据请求的各个数据切片时,触发所述DMA模块1011;
所述DMA模块1011,用于根据所述主控芯片101的触发,循环执行N1至N3,直至完成接收全部所述数据切片;
N1:在所述至少两个缓存区1021中选取目标缓存区;
N2:将外部服务端传输的各个数据切片写入到所述目标缓存区;
N3:当所述目标缓存区写满时,判断是否接收到全部的所述数据切片;如果是,将所述目标缓存区的各个所述数据切片转存至外部连接的存储区域;如果否,将所述目标缓存区1021的各个所述数据切片转存至所述存储区域,并执行N1。
根据如图1所示的实施例,该客户端包括主控芯片以及设置了至少两个缓存区的内存。当主控芯片接收到服务端传输的对应于其发送的获取数据请求的各个数据切片时,触发DMA模块在缓存区中选取目标缓存区,并将数据切片写入到目标缓存区。当目标缓存区写满时,且接收了全部的数据切片则将目标缓存区的数据切片转存至连接的存储区域。当目标缓存区写满时,未接收到全部的数据切片,则将当前目标缓存区的数据切片转存至存储区域,并继续选取下一个目标缓存区,重复上述将数据切片写入到目标缓存区及判断是否接收到全部的数据切片的过程,直至客户端完成接收全部数据切片。通过上述可知,本方案在内存中设置了缓存区,利用缓存区写入服务端传输的数据,当一个缓存区写满后,将该缓存区的数据转存至存储区域,且选择下一个缓存区继续写入服务端传输的数据,从而减少发生由于内存存储空间不够导致不能接收服务端传输的数据的情况,因此本发明实施例可以降低数据传输失败的概率。
在本发明一个实施例中,主控芯片以及内存的型号可以根据具体的业务要求确定,比如为了减少成本,主控芯片可以选用采用意法半导体的stm32f103rbt6芯片。
在本发明一个实施例中,客户端与服务端之间的数据传输可以通过有线网络实现,也可以通过无线网络实现。当采用无线网络时,可以通过在客户端中设置WIFI模块,以实现客户端与服务端之间的数据传输。
当采用无线网络方式时,在本发明一个实施例中,如图2所示,在图1所示客户端中可以进一步包括:WIFI模块201;
所述WIFI模块201,包括:软件开发工具包SDK和应用程序编程API接口;
所述主控芯片101,用于向所述服务端发送获取数据请求时,触发所述WIFI模块201;通过所述WIFI模块201接收所述服务端传输的对应于所述获取数据请求的各个数据切片;
所述WIFI模块201,用于当接收到所述主控芯片101的触发时,根据所述SDK调用所述API接口,向所述服务端发送获取数据请求;根据所述SDK调用所述API接口接收所述服务端传输的对应于所述获取数据请求的各个数据切片,将各个所述数据切片传输至所述主控芯片101。
在本实施例中,WIFI模块采用的具体型式可以根据具体业务要求确定,比如为了节约成本可以选用采用乐鑫esp8266芯片,esp8266芯片配套SDK开发包,数据传输采用USART,波特率为115200bps。
在本实施例中,客户端向服务端发送的获取数据请求包括的具体内容可以根据业务要求确定,比如可以是获取图片的请求也可以是获取音乐的请求。比如,主控芯片需要向服务端发送获取数据请求时,需要触发WIFI模块,以通过WIFI模块将获取数据请求发送至服务端。然后再通过WIFI模块接收服务端传输的对应于获取数据请求的各个数据切片。当WIFI模块将获取数据请求发送至服务端时,WIFI模块需要根据其自身包括的SDK调用其自身的API接口,利用API接口向服务端发送获取数据请求;当服务端向客户端传输数据切片时,WIFI模块根据其自身包括的SDK调用其自身的API接口,利用API接口接收服务端传输的各个数据切片。
根据上述实施例,客户端中可以进一步包括WIFI模块,利用WIFI模块完成客户端与服务端之间的获取数据请求和数据切片的传输,由于WIFI模块为无线局域网,因此可以提高客户端与服务端之间数据传输的便利性。
在本发明一个实施例中,如图3所示,在图1所示客户端中的主控芯片101可以进一步包括:同步/异步串行收发USART模块301;
所述USART模块301,用于当所述主控芯片101触发所述DMA模块1011时,将各个所述数据切片传输至所述DMA模块1011。
在本实施例中,由于USART模块可以实现数据传输发送方和数据接收方的时钟同步,实现数据的快速传输。且由于传输速度快,所以数据传输过程中出现数据丢失的可能性较小。
在本实施例中,USART模块包括的元件型号可以根据具体的业务要求确定。
根据上述实施例,主控芯片中可以进一步包括USART模块,当主控芯片触发DMA模块时,利用USART模块将各个数据切片传输至DMA模块,以使DMA模块将数据切片写入到目标缓存区,由于USART模块可以实现数据传输发送方和数据接收方的时钟同步,因此可以提高传输数据切片的速度。
在本发明一个实施例中,所述DMA模块用于接收服务端发送的数据切片的整个循环过程,可以通过如下代码实现:
上述的代码只是一种优选方式,还可以根据其他的业务要求,采用其他的代码形式实现DMA模块接收服务端发送的数据切片的过程。
在本发明一个实施例中,如图4所示,所述客户端可以进一步包括:安全数字输入输出卡SDIO总线401;
所述SDIO总线401,分别与所述内存102和所述存储区域402相连,用于将所述内存102的各个所述数据切片传输至所述存储区域402。
在本实施例中,存储区域可以是客户端内置的存储区域,也可以包括U盘或TF卡的外置存储区域。为了加快将目标缓存区的各个数据切片转存至存储区域的速度,使用SDIO总线连接内存与存储区域,利用SDIO总线将数据切片转存至存储区域。另外由于SDIO总线传输速度块,还可以减少数据传输过程中出现数据丢失的可能性。
根据上述实施例,内存与存储区域之间通过SDIO总线连接,利用SDIO总线将目标缓存区的数据切片转存至存储区域,由于SDIO总线性能良好,可以提高数据切片的传输速度。
在本发明一个实施例中,如图5所示,所述客户端可以进一步包括:电子标识模块501;
所述电子标识模块501,包括携带图形、文字以及功能说明的电子标识,用于向用户提供所述电子标识,以使用户根据所述电子标识触发所述主控芯片101向所述服务端发送获取数据请求。
在本实施例中,电子标识可以以二维码的型式呈现。比如在充电宝上设置有二维码,用户可以利用手机等电子设备扫描该二维码,当用户扫描完成之后,用户根据该二维码的相关信息触发主控芯片向服务端发送获取数据请求。另外该电子标识,还可以为用户提供嵌套付款等功能。
根据上述实施例,客户端可以进一步包括电子标识模块,利用电子标识模块向用户提供电子标识,以使用户根据电子标识触发主控芯片向服务端发送获取数据请求。用户可以随时根据需要利用电子标识触发主控芯片向服务端发送获取数据请求,因此使用的便利性较高。
在本发明一个实施例中,客户端中还可以进一步包括还原模块,还原模块,用于当存储区域存储服务端传输的全部数据切片时,根据各个数据切片的标识,还原各个数据切片对应的数据。比如当存储区域存储服务端传输的全部数据切片为:数据切片1、数据切片2和数据切片3,还原模块就可以根据数据切片1、数据切片2和数据切片3对应的标识顺序将各个数据切片进行组合,从而还原各个数据切片对应的数据。
在本发明一个实施例中,客户端中还可以进一步包括解密模块,当服务端传输的各个数据切片为加密的数据切片时,解密模块,用于根据预先设定的解密算法对各个数据切片进行解密,得到解密后的各个所述数据切片;然后还原模块,用于根据解密后的各个数据切片的标识,还原各个数据切片对应的数据。解密算法可以根据业务要求确定,但是需要注意的是解密算法应为客户端和服务端约定好的算法。
如图6所示,本发明实施例提供了一种服务端,该服务端包括:确定模块601、切片模块602、传输模块603;其中,
所述确定模块601,用于获取外部客户端发送的获取数据请求,并确定与所述获取数据请求对应的数据;
所述切片模块602,用于根据预先设定的切片长度对所述数据进行切片处理,形成至少一个数据切片;
所述传输模块603,用于将各个所述数据切片传输给所述客户端,循环执行M1至M2,直至完成传输全部所述数据切片;
M1:将各个所述数据切片传输至所述客户端中的目标缓存区;
M2:当所述目标缓存区写满时,判断全部的所述数据切片是否传输完成;如果否,确定未传输的各个所述数据切片,并执行M1。
根据如图6所示的实施例,该服务端包括:确定模块、切片模块、传输模块,确定模块确定与客户端发送的获取数据请求对应的数据之后,切片模块根据预先设定的切片长度对确定模块确定的数据进行切片处理形成至少一个数据切片,再利用传输模块将各个数据切片传输至客户端中的目标缓存区,当目标缓存区写满时,全部数据切片未传输完成时,确定未传输的数据切片,并将未传输的数据切片继续写入到下一个目标缓存区,传输模块循环上述数据切片传输过程直至完成传输全部所述数据切片。通过上述可知,本方案将数据进行了切分形成了数据切片,将数据切片传输至客户端的目标缓存区,当一个缓存区写满后,将未传输的数据切片传输至下一个缓存区,由于数据切片传输给各个缓存区,因此本发明提供的实施例可以降低数据传输失败的概率。
在本发明一个实施例中,服务端可以进一步包括:加密单元;加密单元,用于根据预先设定的加密算法对形成的所述至少一个数据切片进行加密。加密算法可以根据业务要求确定,需要注意的加密算法应为与客户端约定好的算法,由于对数据进行了加密,因此在数据传输过程中可以减少数据泄露的可能性。
如图7所示,本发明实施例提供了一种应用于客户端的数据传输方法,该方法包括:
步骤701:在所述客户端部署DMA模块;
步骤702:在所述客户端的内存中设置至少两个缓存区;
步骤703:向外部服务端发送获取数据请求;
步骤704:当接收到所述服务端传输的对应于所述获取数据请求的各个数据切片时,触发所述DMA模块;
步骤705:利用所述DMA模块接收所述服务端传输的对应于所述获取数据请求的各个数据切片;
步骤706:在所述至少两个缓存区中选取目标缓存区;
步骤707:将外部服务端传输的各个数据切片写入到所述目标缓存区;
步骤708:当所述目标缓存区写满时,判断是否接收到全部的所述数据切片;如果是,执行步骤709;如果否,执行步骤709和步骤706;
步骤709:将所述目标缓存区的各个所述数据切片转存至外部连接的存储区域。
根据如图7所示的实施例,该应用于客户端的数据传输方法包括:当接收到服务端传输的对应于客户端发送的获取数据请求的各个数据切片时,触发客户端中部署的DMA模块,并利用DMA模块在内存中的缓存区中选取目标缓存区,将服务端传输的各个数据切片写入到目标缓存区,当目标缓存区写满时,全部的数据切片未传输完成时,将目标缓存区的各个数据切片转存至存储区域,并选择下一个目标缓存区写入剩余部分数据切片,重复上述过程,直至完成接收全部数据切片,通过上述可知,本方案在内存中设置了缓存区,利用缓存区写入服务端传输的数据,当一个缓存区写满后,将该缓存区的数据转存至存储区域,且选择下一个缓存区继续写入服务端传输的数据,从而减少发生由于内存存储空间不够导致不能接收服务端传输的数据的情况,因此本发明提供的实施例可以降低数据传输失败的概率。
在本发明一个实施例中,当所述客户端进一步包括WIFI模块时,
则图7所示流程图中的步骤703向外部服务端发送获取数据请求可以包括:触发所述WIFI模块根据所述SDK调用所述API接口,向所述服务端发送获取数据请求;
则图7所示流程图中的步骤705接收到所述服务端传输的对应于所述获取数据请求的各个数据切片可以包括:通过所述WIFI模块根据所述SDK调用所述API接口接收所述服务端传输的对应于所述获取数据请求的各个数据切片。
在本发明一个实施例中,在图7所示流程图中步骤704中所涉及的触发所述DMA模块之后可以进一步包括:利用USART模块将各个所述数据切片传输至所述DMA模块。
在本发明一个实施例中,在图7所示流程图中步骤703向外部服务端发送获取数据请求之前可以进一步包括:向用户提供包括携带图形、文字以及功能说明的电子标识,以使用户根据所述电子标识触发所述客户端向所述服务端发送获取数据请求。
如图8所示,本发明实施例提供了一种应用于服务端的数据传输方法,该方法包括:
步骤801:获取外部客户端发送的获取数据请求,并确定与所述获取数据请求对应的数据;
步骤802:根据预先设定的切片长度对所述数据进行切片处理,形成至少一个数据切片;
步骤803:将各个所述数据切片传输至所述客户端中的目标缓存区;
步骤804:当所述目标缓存区写满时,判断全部的所述数据切片是否传输完成;如果否,执行步骤805;否则结束当前流程;
步骤805:确定未传输的各个所述数据切片,并执行步骤803。
根据如图8所示的实施例,该应用于服务端的数据传输方法包括:确定与客户端发送的获取数据请求对应的数据,然后根据预先设定的切片长度对确定的数据进行切片处理形成至少一个数据切片,再利用将各个数据切片传输至客户端中的目标缓存区,当目标缓存区写满时,全部数据切片未传输完成时,确定未传输的数据切片,并将未传输的数据切片继续写入到下一个目标缓存区,循环上述数据切片传输过程直至完成传输全部所述数据切片。通过上述可知,本方案将数据进行了切分形成了数据切片,将数据切片传输至客户端的目标缓存区,当一个缓存区写满后,将未传输的数据切片传输至下一个缓存区,由于数据切片传输给各个缓存区,因此本发明提供的实施例可以降低数据传输失败的概率。
如图9所示,本发明实施例提供了一种数据传输的系统,该系统包括:上述任一所述的客户端901,以及上述任一所述的服务端902;其中,
所述客户端901与所述服务端902通过socket通信方式连接。
在本发明一个实施例中,客户端与服务端通过socket通信方式连接只是一种优选地方式,可以根据业务要求选择其他的通信方式。
下面以包括设置DMA模块的主控芯片、WIFI模块、USART模块、SDIO总线、电子标识模块的客户端、服务端以及存储区域为TF卡为例。展开说明数据传输方法,如图10所示,该数据传输方法可以包括如下步骤:
步骤1001:在客户端部署DMA模块、在内存中设置至少两个缓存区、设置电子标识,以及将内存通过SDIO总线与TF卡连接。
在本步骤中,在内存中设置了3个大小为20k的缓存区。
步骤1002:预先设定切片长度。
在本步骤中,根据业务要求设定的切片长度为10K。
步骤1003:客户端向用户提供电子标识,用户根据电子标识触发客户端利用WIFI模块利用SDK调用API接口,向服务端发送获取数据请求。
在本步骤中,客户端向用户提供的电子标识为二维码。
步骤1004:服务端获取客户端发送的获取数据请求,并确定与获取数据请求对应的数据。
在本步骤中,服务端根据客户端发送的获取数据请求,确定的数据为一张50k图片。
步骤1005:服务端根据预先设定的切片长度对数据进行切片处理,形成至少一个数据切片。
在本步骤中,服务端根据步骤1002中设定的切片长度10k对步骤1004中确定的50k的图片进行切片处理,形成了5个数据切片。
步骤1006:服务端将各个数据切片传输至客户端。
步骤1007:客户端的WIFI模块根据SDK调用API接口接收服务端传输的对应于获取数据请求的各个数据切片,触发DMA模块。
步骤1008:客户端的USART模块将各个数据切片传输至DMA模块。
步骤1009:客户端利用DMA模块在至少两个缓存区中选取目标缓存区。
在本步骤中,客户端利用DMA模块在步骤1001设置的三个缓存区中选取缓存区1为目标缓存区。
步骤1010:客户端的DMA模块将USART模块传输的各个数据切片写入到目标缓存区。
在本步骤中DMA模块将USART模块传输的各个数据切片写入到步骤1009确定的缓存区1中。
步骤1011:客户端当目标缓存区写满时,判断是否接收到全部的所述数据切片;如果是,执行步骤1012;如果否,执行步骤1013和步骤1009。
在本步骤中,缓存区1大小为20k,当写入两个10k的数据切片后,则写满,判断是否接收了全部的5个数据切片,如果否则执行步骤1013和步骤1009。以使客户端在除缓存区1的另外两个缓存区中选取下一个目标缓存区,比如缓存区2继续写入未写入到缓存区1中的数据切片。
步骤1012:服务端结束传输流程,客户端将目标缓存区的各个数据切片通过SDIO总线转存至TF卡,并结束当前流程。
在本步骤中,全部的数据切片传输完成,则将当前目标缓存区中的数据通过SDIO总线转存至TF卡。
步骤1013:服务端确定未传输的各个数据切片,客户端将目标缓存区的各个数据切片通过SDIO总线转存至TF卡。
在本步骤中,服务端确定未传输的数据切片为数据切片3、数据切片4、数据切片5,客户端将缓存区1中的各个数据切片通过SDIO总线转存至TF卡。
综上所述,本发明各个实施例至少可以实现如下有益效果:
1、在本发明实施例中,该客户端包括主控芯片以及设置了至少两个缓存区的内存。当主控芯片接收到服务端传输的对应于其发送的获取数据请求的各个数据切片时,触发DMA模块在缓存区中选取目标缓存区,并将数据切片写入到目标缓存区。当目标缓存区写满时,且接收了全部的数据切片则将目标缓存区的数据切片转存至连接的存储区域。当目标缓存区写满时,未接收到全部的数据切片,则将当前目标缓存区的数据切片转存至存储区域,并继续选取下一个目标缓存区,重复上述将数据切片写入到目标缓存区及判断是否接收到全部的数据切片的过程,直至客户端完成接收全部数据切片。通过上述可知,本方案在内存中设置了缓存区,利用缓存区写入服务端传输的数据,当一个缓存区写满后,将该缓存区的数据转存至存储区域,且选择下一个缓存区继续写入服务端传输的数据,从而减少发生由于内存存储空间不够导致不能接收服务端传输的数据的情况,因此本发明实施例可以降低数据传输失败的概率。
2、在本发明实施例中,客户端中可以进一步包括WIFI模块,利用WIFI模块完成客户端与服务端之间的获取数据请求和数据切片的传输,由于WIFI模块为无线局域网,因此可以提高客户端与服务端之间数据传输的便利性。
3、在本发明实施例中,主控芯片中可以进一步包括USART模块,当主控芯片触发DMA模块时,利用USART模块将各个数据切片传输至DMA模块,以使DMA模块将数据切片写入到目标缓存区,由于USART模块可以实现数据传输发送方和数据接收方的时钟同步,因此可以提高传输数据切片的速度。
4、在本发明实施例中,内存与存储区域之间通过SDIO总线连接,利用SDIO总线将目标缓存区的数据切片转存至存储区域,由于SDIO总线性能良好,可以提高数据切片的传输速度。
5、在本发明实施例中,客户端可以进一步包括电子标识模块,利用电子标识模块向用户提供电子标识,以使用户根据电子标识触发主控芯片向服务端发送获取数据请求。用户可以随时根据需要利用电子标识触发主控芯片向服务端发送获取数据请求,因此使用的便利性较高。
6、在本发明实施例中,该服务端包括:确定模块、切片模块、传输模块,确定模块确定与客户端发送的获取数据请求对应的数据之后,切片模块根据预先设定的切片长度对确定模块确定的数据进行切片处理形成至少一个数据切片,再利用传输模块将各个数据切片传输至客户端中的目标缓存区,当目标缓存区写满时,全部数据切片未传输完成时,确定未传输的数据切片,并将未传输的数据切片继续写入到下一个目标缓存区,传输模块循环上述数据切片传输过程直至完成传输全部所述数据切片。通过上述可知,本方案将数据进行了切分形成了数据切片,将数据切片传输至客户端的目标缓存区,当一个缓存区写满后,将未传输的数据切片传输至下一个缓存区,由于数据切片传输给各个缓存区,因此本发明提供的实施例可以降低数据传输失败的概率。
7、在本发明实施例中,该应用于客户端的数据传输方法包括:当接收到服务端传输的对应于客户端发送的获取数据请求的各个数据切片时,触发客户端中部署的DMA模块,并利用DMA模块在内存中的缓存区中选取目标缓存区,将服务端传输的各个数据切片写入到目标缓存区,当目标缓存区写满时,全部的数据切片未传输完成时,将目标缓存区的各个数据切片转存至存储区域,并选择下一个目标缓存区写入剩余部分数据切片,重复上述过程,直至完成接收全部数据切片,通过上述可知,本方案在内存中设置了缓存区,利用缓存区写入服务端传输的数据,当一个缓存区写满后,将该缓存区的数据转存至存储区域,且选择下一个缓存区继续写入服务端传输的数据,从而减少发生由于内存存储空间不够导致不能接收服务端传输的数据的情况,因此本发明提供的实施例可以降低数据传输失败的概率。
8、在本发明实施例中,该应用于服务端的数据传输方法包括:确定与客户端发送的获取数据请求对应的数据,然后根据预先设定的切片长度对确定的数据进行切片处理形成至少一个数据切片,再利用将各个数据切片传输至客户端中的目标缓存区,当目标缓存区写满时,全部数据切片未传输完成时,确定未传输的数据切片,并将未传输的数据切片继续写入到下一个目标缓存区,循环上述数据切片传输过程直至完成传输全部所述数据切片。通过上述可知,本方案将数据进行了切分形成了数据切片,将数据切片传输至客户端的目标缓存区,当一个缓存区写满后,将未传输的数据切片传输至下一个缓存区,由于数据切片传输给各个缓存区,因此本发明提供的实施例可以降低数据传输失败的概率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种客户端,其特征在于,包括:主控芯片以及内存,其中,所述主控芯片中包括直接内存存取DMA模块;其中,
所述内存设置至少两个缓存区;
所述主控芯片,用于向外部服务端发送获取数据请求;当接收到所述服务端传输的对应于所述获取数据请求的各个数据切片时,触发所述DMA模块;
所述DMA模块,用于根据所述主控芯片的触发,循环执行N1至N3,直至完成接收全部所述数据切片;
N1:在所述至少两个缓存区中选取目标缓存区;
N2:将外部服务端传输的各个数据切片写入到所述目标缓存区;
N3:当所述目标缓存区写满时,判断是否接收到全部的所述数据切片;如果是,将所述目标缓存区的各个所述数据切片转存至外部连接的存储区域;如果否,将所述目标缓存区的各个所述数据切片转存至所述存储区域,并执行N1。
2.根据权利要求1所述的客户端,其特征在于,进一步包括:无线局域网WIFI模块;
所述WIFI模块,包括:软件开发工具包SDK和应用程序编程API接口;
所述主控芯片,用于向所述服务端发送获取数据请求时,触发所述WIFI模块;通过所述WIFI模块接收所述服务端传输的对应于所述获取数据请求的各个数据切片;
所述WIFI模块,用于当接收到所述主控芯片的触发时,根据所述SDK调用所述API接口,向所述服务端发送获取数据请求;根据所述SDK调用所述API接口接收所述服务端传输的对应于所述获取数据请求的各个数据切片,将各个所述数据切片传输至所述主控芯片。
3.根据权利要求1所述的客户端,其特征在于,所述主控芯片,进一步包括:同步/异步串行收发USART模块;
所述USART模块,用于当所述主控芯片触发所述DMA模块时,将各个所述数据切片传输至所述DMA模块。
4.根据权利要求1至3任一所述的客户端,其特征在于,进一步包括:安全数字输入输出卡SDIO总线;
所述SDIO总线,分别与所述内存和所述存储区域相连,用于将所述内存的各个所述数据切片传输至所述存储区域;
和/或,
进一步包括:电子标识模块;
所述电子标识模块,包括携带图形、文字以及功能说明的电子标识,用于向用户提供所述电子标识,以使用户根据所述电子标识触发所述主控芯片向所述服务端发送获取数据请求。
5.一种服务端,其特征在于,包括:确定模块、切片模块、传输模块;其中,
所述确定模块,用于获取外部客户端发送的获取数据请求,并确定与所述获取数据请求对应的数据;
所述切片模块,用于根据预先设定的切片长度对所述数据进行切片处理,形成至少一个数据切片;
所述传输模块,用于将各个所述数据切片传输给所述客户端,循环执行M1至M2,直至完成传输全部所述数据切片;
M1:将各个所述数据切片传输至所述客户端中的目标缓存区;
M2:当所述目标缓存区写满时,判断全部的所述数据切片是否传输完成;如果否,确定未传输的各个所述数据切片,并执行M1。
6.一种数据传输方法,其特征在于,应用于客户端,在所述客户端部署DMA模块以及在所述客户端的内存中设置至少两个缓存区,还包括:
向外部服务端发送获取数据请求;
当接收到所述服务端传输的对应于所述获取数据请求的各个数据切片时,触发所述DMA模块;
利用所述DMA模块接收所述服务端传输的对应于所述获取数据请求的各个数据切片,利用所述DMA模块循环执行N1至N3,直至完成接收全部所述数据切片;
N1:在所述至少两个缓存区中选取目标缓存区;
N2:将外部服务端传输的各个数据切片写入到所述目标缓存区;
N3:当所述目标缓存区写满时,判断是否接收到全部的所述数据切片;如果是,将所述目标缓存区的各个所述数据切片转存至外部连接的存储区域;如果否,将所述目标缓存区的各个所述数据切片转存至所述存储区域,并执行N1。
7.根据权利要求6所述的方法,其特征在于,当所述客户端进一步包括WIFI模块时,
所述向外部服务端发送获取数据请求,包括:
触发所述WIFI模块根据所述SDK调用所述API接口,向所述服务端发送获取数据请求;
所述接收到所述服务端传输的对应于所述获取数据请求的各个数据切片,包括:
通过所述WIFI模块根据所述SDK调用所述API接口接收所述服务端传输的对应于所述获取数据请求的各个数据切片。
8.根据权利要求6所述的方法,其特征在于,在所述触发所述DMA模块之后,进一步包括:
利用USART模块将各个所述数据切片传输至所述DMA模块;
和/或,
在所述向外部服务端发送获取数据请求之前,进一步包括:
向用户提供包括携带图形、文字以及功能说明的电子标识,以使用户根据所述电子标识触发所述客户端向所述服务端发送获取数据请求。
9.一种数据传输方法,其特征在于,应用于服务端,包括:
获取外部客户端发送的获取数据请求,并确定与所述获取数据请求对应的数据;
根据预先设定的切片长度对所述数据进行切片处理,形成至少一个数据切片;
将各个所述数据切片传输给所述客户端,循环执行M1至M2,直至完成传输全部所述数据切片;
M1:将各个所述数据切片传输至所述客户端中的目标缓存区;
M2:当所述目标缓存区写满时,判断全部的所述数据切片是否传输完成;如果否,确定未传输的各个所述数据切片,并执行M1。
10.一种数据传输的系统,其特征在于,包括:权利要求1至4任一所述的客户端,以及权利要求5所述的服务端;其中,
所述客户端与所述服务端通过socket通信方式连接。
CN201710159524.9A 2017-03-17 2017-03-17 一种客户端、服务端、数据传输方法及系统 Pending CN106951380A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710159524.9A CN106951380A (zh) 2017-03-17 2017-03-17 一种客户端、服务端、数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710159524.9A CN106951380A (zh) 2017-03-17 2017-03-17 一种客户端、服务端、数据传输方法及系统

Publications (1)

Publication Number Publication Date
CN106951380A true CN106951380A (zh) 2017-07-14

Family

ID=59472146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710159524.9A Pending CN106951380A (zh) 2017-03-17 2017-03-17 一种客户端、服务端、数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN106951380A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108509812A (zh) * 2018-03-19 2018-09-07 合肥泓泉档案信息科技有限公司 档案的存储系统及存储方法
CN111831596A (zh) * 2020-07-28 2020-10-27 山东有人信息技术有限公司 一种rtos串口网络传输方法及装置
CN113992651A (zh) * 2021-09-24 2022-01-28 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品
CN114697376A (zh) * 2022-03-16 2022-07-01 浪潮云信息技术股份公司 一种超大消息传输方法及装置
CN115118678A (zh) * 2022-06-07 2022-09-27 上海赛治信息技术有限公司 一种fc设备端的多分区网络通信系统及其通信方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905518A (zh) * 2005-07-29 2007-01-31 北京航空航天大学 保证数据交换可靠传输的方法
CN105163204A (zh) * 2015-08-28 2015-12-16 山东泰信电子股份有限公司 一种流媒体文件实时切片系统及方法
CN105677592A (zh) * 2015-12-31 2016-06-15 北京经纬恒润科技有限公司 一种总线通信方法及系统
CN106303671A (zh) * 2016-08-16 2017-01-04 任晋军 一种流媒体的播放方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905518A (zh) * 2005-07-29 2007-01-31 北京航空航天大学 保证数据交换可靠传输的方法
CN105163204A (zh) * 2015-08-28 2015-12-16 山东泰信电子股份有限公司 一种流媒体文件实时切片系统及方法
CN105677592A (zh) * 2015-12-31 2016-06-15 北京经纬恒润科技有限公司 一种总线通信方法及系统
CN106303671A (zh) * 2016-08-16 2017-01-04 任晋军 一种流媒体的播放方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
亿科信息(360EET)编: "《ARM/ST全国大学生智能设备创新大赛参赛指南及获奖作品案例实战 2015》", 31 August 2015 *
郭军 编著: "《基于PROTEUS的PIC单片机设计与仿真》", 30 November 2015 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108509812A (zh) * 2018-03-19 2018-09-07 合肥泓泉档案信息科技有限公司 档案的存储系统及存储方法
CN111831596A (zh) * 2020-07-28 2020-10-27 山东有人信息技术有限公司 一种rtos串口网络传输方法及装置
CN111831596B (zh) * 2020-07-28 2022-01-21 山东有人物联网股份有限公司 一种rtos串口网络传输方法及装置
CN113992651A (zh) * 2021-09-24 2022-01-28 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品
CN113992651B (zh) * 2021-09-24 2024-05-14 深圳市有方科技股份有限公司 一种基于文件传输协议ftp的下载方法和相关产品
CN114697376A (zh) * 2022-03-16 2022-07-01 浪潮云信息技术股份公司 一种超大消息传输方法及装置
CN115118678A (zh) * 2022-06-07 2022-09-27 上海赛治信息技术有限公司 一种fc设备端的多分区网络通信系统及其通信方法
CN115118678B (zh) * 2022-06-07 2024-03-12 南京全信传输科技股份有限公司 一种fc设备端的多分区网络通信系统及其通信方法

Similar Documents

Publication Publication Date Title
CN106951380A (zh) 一种客户端、服务端、数据传输方法及系统
CN109902053A (zh) 一种基于双控制器的spi通信方法、终端设备及存储介质
JP2013526734A (ja) Nfcコントローラを用いた通信の管理方法
CN110266682B (zh) 数据加密方法、装置、移动终端及解密方法
US20170154327A1 (en) Mobile Payment Method and Apparatus and Near Field Communication Device
CN102299729A (zh) 一种信息传输方法及装置
CN106776401B (zh) 消息传输方法和装置
CN106502826A (zh) 数据备份及传输方法及移动终端
CN102223630A (zh) 一种遥控系统及方法
CN106980551A (zh) 一种进程通信方法及装置
CN104901991A (zh) 虚拟资源转移方法、装置和系统
WO2014067547A1 (en) Nfc controller architecture for emulation of multiple nfc-a devices
CN107967739A (zh) 开锁的方法、装置和存储介质
KR20100053986A (ko) 블루투스 장치와 단말 간의 자동 페어링 방법 및 블루투스 모듈을 포함하는 단말
CN107864471A (zh) 一种基于nfc进行蓝牙连接的智能后视镜及其连接方法
CN109934314A (zh) 一种电力物联网用电子标签的数据读取方法及系统
CN106528084A (zh) 开机方法及装置
CN106535349A (zh) 电磁波数据传输组合方法及其系统
CN104978981B (zh) 一种音乐随机播放方法及装置
CN113727298A (zh) 层二标识确定方法、装置及终端
KR20140123723A (ko) 충돌방지 알고리즘을 이용한 rf아이디 시스템에서 키 설립 방법
CN106657703A (zh) Nv参数导入方法、调制解调器及移动终端
CN106548088A (zh) 一种基于移动终端的保密存储区读取控制方法及移动终端
CN103546199B (zh) 信息传输方法及终端设备
CN110446261A (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: 20170714

RJ01 Rejection of invention patent application after publication