一种数据传输方法及系统技术方案

技术编号:30163924 阅读:14 留言:0更新日期:2021-09-25 15:18
本发明专利技术涉及数据传输领域,实施例具体公开一种实现数据传输的方法及系统。本申请通过设置socket协议族,使得数据能够在链路层直接实现接收与发送,而不需要再通过数据链路层、网络层、传输层、会话层、表示层和应用层,逐层来传输数据,避免了逐层来传输数据造成系统资源的大量消耗,同时也避免了发送数据造成内存溢出从而导致系统崩溃的风险;同时通过设置发送端的环形存储器、接收端的环形存储器、接收端消息确认数据环形存储器和发送端消息确认数据环形存储器,进一步提高了数据发送与接收的稳定性与准确性。稳定性与准确性。稳定性与准确性。

【技术实现步骤摘要】
一种数据传输方法及系统


[0001]本专利技术数据传输领域,具体公开一种数据传输方法及系统。

技术介绍

[0002]由于互联网能够不受空间限制的来进行信息交换,因此人们的生活与工作中到处都有它的影子,互联网的的重要性日益增加,而数据传输是实现信息交互最基本也是最重要的部分。
[0003]在现有技术中,常常采用socket数据传输方法对数据进行传输,而现有的socket数据传输方法主要是通过数据链路层、网络层、传输层、会话层、表示层和应用层,逐层来传输数据,采用逐层传输数据会造成系统资源的大量消耗,同时还存在大量的发送数据造成内存溢出从而导致系统崩溃的风险。

技术实现思路

[0004]为解决上述问题,本申请提供一种数据传输方法,具体为:
[0005]S1:获取数据以及数据参数,根据所述数据参数,分配发送端环形存储器内存大小;
[0006]S2:将所述数据写入发送端环形存储器中,发送端消息确认数据环形存储器循环读取发送端环形存储器中的数据,并将所述数据发送至接收端消息确认数据环形存储器;
[0007]S3:所述接收端消息确认数据环形存储器将所述数据循环存储至接收端环形存储器,接收端应用程序循环读取所述接收端环形存储器中的数据。
[0008]进一步的,所述S1具体为:
[0009]所述数据参数包括数据结构、使用内存块的大小和实用内存块的个数。
[0010]进一步的,所述S2具体为:
[0011]S21:设置socket协议族,将数据写入链路层的所述发送端环形存储器中;
[0012]S22:所述发送端消息确认数据环形存储器循环读取所述发送端环形存储器中的数据,判断所述发送端环形存储器中是否有数据。
[0013]进一步的,所述S22具体为:
[0014]如果是,则调用socket发送所述数据至接收端消息确认数据环形存储器;
[0015]如果否,则发送端消息确认数据环形存储器处于等待状态。
[0016]进一步的,所述S3具体为:
[0017]S31:调用socket接收数据;
[0018]S32:所述接收端消息确认数据环形存储器判断是否接收到所述发送端环形存储器中的数据;
[0019]如果是,将所述发送端环形存储器中的数据循环存储至接收端环形存储器,并由应用程序循环读取所述接收端环形存储器中的数据;
[0020]如果否,则接收端消息确认数据环形存储器处于等待状态。
[0021]一种数据传输系统,用于实现上述数据传输方法。
[0022]本申请与现有技术相比,其有益效果详细说明如下:本申请通过设置socket协议族,实现了数据在链路层之间的传输,避免了逐层来传输数据造成系统资源的大量消耗,同时也避免了发送数据造成内存溢出从而导致系统崩溃的风险;同时通过设置发送端的环形存储器、接收端的环形存储器、接收端消息确认数据环形存储器和发送端消息确认数据环形存储器,进一步提高了数据发送与接收的稳定性与准确性。
附图说明
[0023]图1为本专利技术实施例提供的实现数据传输方法的流程示意图;
具体实施方式
[0024]为了使本领域的技术人员更好地理解本专利技术的技术方案,下面结合附图和具体实施例对本专利技术作进一步的详细说明。
[0025]如图1所示,本专利技术实施例提供一种数据传输方法,应用于数据传输系统,该系统包括发送端的环形存储器、接收端的环形存储器、接收端消息确认数据环形存储器、发送端消息确认数据环形存储器,具体方法包括:
[0026]S1:获取数据以及数据参数,根据所述数据参数,分配发送端环形存储器内存大小;
[0027]S2:将所述数据写入发送端环形存储器中,发送端消息确认数据环形存储器循环读取发送端环形存储器中的数据,并将所述数据发送至接收端消息确认数据环形存储器;
[0028]S3:所述接收端消息确认数据环形存储器将所述数据循环存储至接收端环形存储器,接收端应用程序循环读取所述接收端环形存储器中的数据。
[0029]所述环形存储器是一块固定的内存空间,用户将数据逐条放入环形存储器中,将写指针向后移动,直到写指针和读指针的差值为零,数据放满环形存储器,写数据处于等待状态。用户读取环形存储器数据时,每读取一条数据读指针便向后移动,直到读写指针相等时便无数据可读,读数据处于等待状态。
[0030]因此,为实现环形存储器的存储效率最大化,需要先根据数据的参数对数据进行分析,再根据数据分析的结果分配环形存储器内存大小。
[0031]如图1所示,发送端的其他应用程序先生成数据,根据所述数据参数分配发送端环形存储器内存的大小,其中,数据参数包括数据结构、使用内存块的大小和实用内存块的个数;设置socket协议族,将所述数据按照分配好的内存大小存储至链路层发送端的环形存储器,发送端消息确认数据环形存储器对所述发送端环形存储器中的数据进行循环读取,并判断所述发送端环形存储器中是否有数据,对发送端环形存储器进行循环读取判断,是为了防止数据漏发的情况,如果读取到数据,则调用socket发送所述数据至接收端消息确认数据环形存储器;如果未读取到数据,则发送端消息确认数据环形存储器处于等待状态,发送端消息确认数据环形存储器继续进行下次循环读取判断。
[0032]所述设置socket协议族,具体为通过设置socket的协议族为PF_PACKET,设置socket_type为SOCK_RAW并且通过使用与设备无关的标准物理层地址结构sockaddr_ll使得数据能够在链路层直接接收及发送而不必经过链路层更上层的协议。
[0033]在接收端,调用socket接收发送端环形存储器的数据,所述接收端消息确认数据环形存储器判断是否接收到所述发送端环形存储器中的数据;如果判断结果为存储有数据,则将所述发送端环形存储器中的数据循环存储至接收端环形存储器,并由应用程序循环读取所述接收端环形存储器中的数据;如果判断结果为没有数据,则接收端消息确认数据环形存储器处于等待状态。
[0034]一种数据传输系统,用于实现上述数据传输方法,其具体实现过程已在上文中记载,在此不做赘述。
[0035]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0036]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括上述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据传输方法,其特征在于,所述方法包括:S1:获取数据以及数据参数,根据所述数据参数,分配发送端环形存储器内存大小;S2:将所述数据写入发送端环形存储器中,发送端消息确认数据环形存储器循环读取发送端环形存储器中的数据,并将所述数据发送至接收端消息确认数据环形存储器;S3:所述接收端消息确认数据环形存储器将所述数据循环存储至接收端环形存储器,接收端应用程序循环读取所述接收端环形存储器中的数据。2.根据权利要求1所述的一种数据传输方法,其特征在于,所述S1具体为:所述数据参数包括数据结构、使用内存块的大小和实用内存块的个数。3.根据权利要求1所述的一种数据传输方法,其特征在于,所述S2具体为:S21:设置socket协议族,将数据写入链路层的所述发送端环形存储器中;S22:所述发送端消息确认数据环形存储器循环读取所述发送...

【专利技术属性】
技术研发人员:孙广收朱伟华孙明哲丁江
申请(专利权)人:佳缘科技股份有限公司
类型:发明
国别省市:

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

1