应用层到TCP层异步Socket数据传输方法及系统技术方案

技术编号:8863441 阅读:350 留言:0更新日期:2013-06-28 02:36
本申请公开了一种应用层到TCP层异步Socket数据传输方法,数据推送到TCP层有两个流程:应用层调用触发以及数据发送驱动触发;应用层调用触发,在接收到应用层的发送调用后,如果缓存器中不存在数据,则直接把待发送数据推送到TCP层,如果缓存器中存在数据并且应用层的待发送数据的大小小于缓存器的剩余存储空间,则将待发送数据将保存进缓存;等待下次应用层调用触发或数据发送驱动触发时再行发送;数据发送驱动触发,每隔一定的时间检查缓存器是否存有数据,如果存有数据,则推送数据到TCP层。本申请还公开了一种应用层到TCP层异步Socket数据传输系统。本申请,能保障TCP/IP协议在应用层发送数据时,在异步Socket传输中,完整的提交应用层协议数据到TCP层。

【技术实现步骤摘要】

本申请涉及半导体网络通信技术,特别涉及一种应用层到TCP层异步Socket数据传输方法及系统
技术介绍
TCP/IP协议保障了数据传输的到达和准确率,但未对应用层数据提交的完整性进行保障。在进行TCP数据流式传输的过程中,数据通常具备应用层协议,同步Socket中,在应用层发送数据时,会阻塞调用,直到所有的数据都提交到TCP层,但在异步Socket中,TCP层只接收能接收的数据容量,对于超出其接收范围的,TCP层将不再接收,调用会立即返回。在TCP层进行数据远程发送后,会空闲出空间,此时能够再次接收外来数据,但需要应用方再次调用进行数据提交,方能提交数据到TCP层。可见TCP/IP协议在应用层发送数据时,无法保障在异步Socket传输中,完整的提交应用层协议数据到TCP层。例如,在GPRS (GeneralPacket Radio Service,通用分组无线服务技术)的网络传输中,5KB/S的数据带宽即可造成网络的阻塞,进而造成到达TCP层的应用层协议数据的不完整。
技术实现思路
本申请要解决的技术问题是,保障TCP/IP协议在应用层发送数据时,在异步Socket传输中,完整的提交应用层协议数据到TCP层。为解决上述技术问题,本申请提供了一种应用层到TCP层异步Socket数据传输方法,包括以下步骤:一.设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;二.接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;三.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果超过则进行步骤二,否则进行步骤四;四.判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;五.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;六.判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;七.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;八.保存待发送数据到所述缓存器,然后进行步骤二 ;九.推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。为解决上述技术问题,本申请还提供了一种应用层到TCP层异步Socket数据传输系统,包括缓存器、数据发送驱动模块、应用层调用接口模块、数据控制模块;所述缓存器,用于缓存发送数据;所述数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;所述应用层调用接口模块,用于接收应用层的发送调用。所述数据控制模块,用于在所述应用层调用接口模块接收到应用层的发送调用后,控制将应用层的待发送数据直接推送到TCP层,或者保存到所述缓存器。所述数据控制模块的具体工作过程如下:一.如果所述应用层调用接口模块接收到应用层的发送调用,则进行步骤二 ;二.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果未超过则进行步骤三;三.判断所述缓存器中是否缓存有数据,如果有则进行步骤四,否则进行步骤八;四.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;五.判断所述缓存器中是否还缓存有数据,如果有则进行步骤六,否则进行步骤八;六.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果未超过则进行步骤七;七.保存待发送数据到所述缓存器;八.推送不超过设定量的待发送数据到TCP层,如果待发送数据未能全部推送完毕,则将剩余的待发送数据保存到所述缓存器。本申请的应用层到TCP层异步Socket数据传输方法及系统,应用层的待发送数据可能直接被提交到TCP层,也可能被缓存到缓存器中,甚至可能部分被提交进TCP层,部分缓存在缓存器。被缓存在缓存器中的数据,无需应用层的干预,将会随着TCP层的数据空间的空闲,主动被推送进TCP层。本申请的应用层到TCP层异步Socket数据传输方法及系统,能控制TCP/IP协议应用层的待发送数据完整进入或完全不进入TCP层,并为数据主动推送到TCP层提供驱动能力,从而在异步Socket的数据发送中,保障了应用层数据发送的完整性。附图说明为了更清楚地说明本申请的技术方案,下面对本申请所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请的应用层到TCP层异步Socket数据传输方法一实施例示意图;图2是本申请的应用层到TCP层异步Socket数据传输系统一实施例示意图。具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。实施例一应用层到TCP层异步Socket数据传输方法,如图1所示,包括以下步骤:一.设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;二.接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;三.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间(如100KB),如果超过则进行步骤二,否则进行步骤四;四.判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;五.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;六.判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;七.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;八.保存待发送数据到所述缓存器,然后进行步骤二 ;九.推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。该应用层到TCP层异步Socket数据传输方法,数据推送到TCP层有两个流程:应用层调用触发以及数据发送驱动触发。应用层调用触发,在接收到应用层的发送调用后,首先对应用层的待发送数据的大小进行判断,如果数据量过大,超出了应用层缓存器的总存储空间,将不对该待发送数据进行发送,因为一旦发送一个字节后,剩余的字节无法保存进入缓存器中,那么后续的数据将无法保存进缓存,从而无法对待发送数据的完整性提供保障。如果应用层的待发送数据的大小超过了缓存器的剩余存储空间,因上述同样的原因,同样将不对该待发送数据进行发送。当从所述缓存器中推送设定量数据到TCP层后,如果缓存器中还存在数据,那么待发送数据将直接保存进缓存;如果缓存器中不存在数据,则直接把待发送数据推送到TCP层,如果不能全本文档来自技高网...

【技术保护点】
一种应用层到TCP层异步Socket数据传输方法,其特征在于,包括以下步骤:一.设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层;二.接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三;三.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果超过则进行步骤二,否则进行步骤四;四.判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九;五.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层;六.判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九;七.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八;八.保存待发送数据到所述缓存器,然后进行步骤二;九.推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。

【技术特征摘要】
1.一种应用层到TCP层异步Socket数据传输方法,其特征在于,包括以下步骤: 一.设置一缓存器,用于缓存发送数据;设置一数据发送驱动模块,用于每隔一定的时间检查所述缓存器是否存有数据,如果存有数据,则依先进先出顺序推送不超过设定量的数据到TCP层; 二.接收应用层的发送调用,如果接收到应用层的发送调用则进行步骤三; 三.判断应用层的待发送数据的大小是否超过所述缓存器的总存储空间,如果超过则进行步骤二,否则进行步骤四; 四.判断所述缓存器中是否缓存有数据,如果有则进行步骤五,否则进行步骤九; 五.从所述缓存器中依先进先出顺序推送不超过设定量的数据到TCP层; 六.判断所述缓存器中是否还缓存有数据,如果有则进行步骤七,否则进行步骤九; 七.判断应用层的待发送数据的大小是否超过所述缓存器的剩余存储空间,如果超过则进行步骤二,否则进行步骤八; 八.保存待发送数据到所述缓存器,然后进行步骤二; 九.推送不超过设定量的待发送数据到TCP层,如果待发送数据全部推送完毕,则进行步骤二,否则将剩余的待发送数据保存到所述缓存器,然后进行步骤二。2.根据权利要求1所述的应用层到TCP层异步Socket数据传输方法,其特征在于,所述缓存器的总存储空间为100KB。3.一种应用层到TCP层异步Socket数据传输系统,其特征在于,包括缓存器、数据发送驱动模块、应用层调用接口模块、数据控制模块; 所述缓存器,用于缓存发送数据; 所述数据发送驱动模块,用于每隔一定的时间检查所述缓存器...

【专利技术属性】
技术研发人员:徐新吴建俊
申请(专利权)人:上海飞田通信技术有限公司
类型:发明
国别省市:

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

1