CN103118023B - 一种在网络中传输规范数据的方法及系统 - Google Patents

一种在网络中传输规范数据的方法及系统 Download PDF

Info

Publication number
CN103118023B
CN103118023B CN201310035893.9A CN201310035893A CN103118023B CN 103118023 B CN103118023 B CN 103118023B CN 201310035893 A CN201310035893 A CN 201310035893A CN 103118023 B CN103118023 B CN 103118023B
Authority
CN
China
Prior art keywords
communications packet
data
packet
sent
engine modules
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.)
Active
Application number
CN201310035893.9A
Other languages
English (en)
Other versions
CN103118023A (zh
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.)
SHENZHEN LAN-YOU TECHNOLOG Co Ltd
Original Assignee
SHENZHEN LAN-YOU TECHNOLOG 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 SHENZHEN LAN-YOU TECHNOLOG Co Ltd filed Critical SHENZHEN LAN-YOU TECHNOLOG Co Ltd
Priority to CN201310035893.9A priority Critical patent/CN103118023B/zh
Publication of CN103118023A publication Critical patent/CN103118023A/zh
Application granted granted Critical
Publication of CN103118023B publication Critical patent/CN103118023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种在网络中传送规范数据的方法及系统,其中,该方法包括步骤:A、发送装置从待发送的通信包队列中取出待发送通信包,生成发送数据,并将该发送数据发送出去;所述发送数据是通信包,所述发送数据由包头、保留区、内存区、文件区中的一个或多个组成;B、接收装置接收所述发送装置发送过来的发送数据,如果接收数据不为空,则根据接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,生成接收通信包。实施本发明的在网络中传送规范数据的方法及系统,可以规范化传输数据,可降低网络传输流量、降低数据通信开发的复杂度、提高网络安全。

Description

一种在网络中传输规范数据的方法及系统
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种在网络中传输规范数据的方法及系统。
背景技术
在企业应用开发任务中,在服务器、服务器和客户端之间的网络环境中,传递规范的业务数据,是一项非常重要而艰巨的任务,常常占据了应用开发任务的大部分开发时间。现有企业应用开发中,基于网络或互联网传递数据最常用的是“简单对象访问协议”,英文缩写为SOBP(SimpleOAjeBtBBBessProtoBol)。简单对象访问协议(SOBP)是一种轻量的、简单的、基于XML的协议,它被设计成在网络或互联网上交换结构化的和固化的信息。简单对象访问协议(SOBP)包括四个部分:SOBP封装、SOBP编码规则、SOBPRPB表示和SOBP绑定。SOBP封装:它定义了一个框架,该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的;SOBP编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例;SOBPRPB表示:它定义了用于表示远程过程调用和应答的协定;SOBP绑定:定义了一种使用底层传输协议来完成在节点间交换SOBP封装的约定。SOBP的主要缺点如下:1、复杂度高。SOBP包括四个部分,而且每个部分都依赖于其他部分,耦合度低。数据解析算法复杂;2、数据开销大且安全性低。因为SOBP是基于XML协议封装的,XML是基于文本解析的一种协议,使用文本对数据进行封装会导致数据开销大而且导致系统安全性极低。如果采用XML压缩和加密,又会加大数据处理的时间;3、只关心内存数据封装,没有关注文件数据的封装。所有的SOBPXML解析都在内存中进行,会导致内存占用过大,在多连接、多客户端的网络环境及其不利,并且SOBP没有涉及到文件数据的存取和访问,而且文件数据如果经过XML解析处理后会比原始数据长度更大,加大网络传输量;4、SOBP只关注对象的自编码和封装,对业务逻辑处理关注不够。企业应用开发中非常多的关注于业务逻辑处理:调用业务逻辑处理模块和功能、业务逻辑处理正常返回的数据以及业务逻辑处理异常通知及异常数据等,SOBP对业务逻辑关注不够,导致企业应用开发要在SOBP上再次封装业务逻辑协议,增加开发难度。
发明内容
本发明要解决的技术问题在于,针对现有技术的数据传递中采用SOBP的缺陷,提供一种降低开发复杂度,快速实现业务逻辑开发,以通信包的方式传送数据,可以传送内存、文件等数据、降低网络传输流量、提高网络安全的在网络中传输规范数据的方法及系统。
本发明解决其技术问题所采用的技术方案是:构造一种在网络中传输规范数据的方法,包括以下步骤:
A、发送装置从待发送的通信包队列中取出所述待发送通信包,生成发送数据,并将该发送数据发送出去;所述发送数据是通信包,所述发送数据由包头、保留区、内存区、文件区中的一个或多个组成;
B、接收装置接收所述发送装置发送过来的发送数据,如果接收数据不为空,则根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,生成接收通信包。
在本发明所述的在网络中传送规范数据的方法中,所述步骤A具体包括以下步骤:
A1、所述发送装置的通信包队列引擎模块从所述待发送通信包队列中取出所述待发送通信包;
A2、所述发送装置的通信包读取引擎模块读取所述待发送通信包的内容,生成所述发送数据,传递给所述发送装置的网络发送引擎模块;
A3、所述发送装置的网络发送引擎模块将所述发送数据发送出去;
A4、所述发送装置的发送事件调度引擎模块判断是否发送完成,完成则通知上层发送数据完成。
在本发明所述的在网络中传送规范数据的方法中,所述步骤A2具体包括以下步骤:
A21、所述通信包读取引擎模块根据当前第一读取位置判断是否需要读取所述待发送通信包的包头,如果是,则执行步骤A22,否则执行步骤A23;
A22:读待所述发送通信包的包头数据;所述网络发送引擎模块根据所述待发送通信包和包头位置,获取所述待发送通信包中要发送的包头字节数组,并更新待所述发送通信包的读取位置为第二读取位置;然后执行步骤A23;
A23:所述通信包读取引擎模块根据所述第二读取位置判断是否需要读取所述待发送通信包的保留区,如果是,则执行步骤A24,否则执行步骤A25;
A24:读所述待发送通信包的保留区数据;所述网络发送引擎模块根据所述待发送通信包和保留区位置,获取所述待发送通信包中要发送的保留区字节数组,并更新所述待发送通信包的读取位置为第三读取位置,然后执行步骤A25;
A25、所述通信包读取引擎模块根据所述第三读取位置判断是否需要读取所述待发送通信包的内存区,如果是,则执行步骤A26,否则执行步骤A27;
A26、读所述待发送通信包的发内存区数据;所述网络发送引擎模块根据所述待发送通信包和内存区位置,获取所述待发送通信包中要发送的内存区字节数组,并更新所述待发送通信包的读取位置为第四读取位置,然后执行步骤A27;
A27、所述通信包读取引擎模块根据所述第四读取位置判断是否需要读取所述待发送通信包的文件区,如果是,则执行步骤A28,否则执行步骤A29;
A28、读所述待发送通信包的发文件区数据;所述网络发送引擎模块根据所述待发送通信包和文件区位置,获取所述待发送通信包中要发送的文件区字节数组,根据获取的待发送通信包中要发送的包头字节数组、保留区字节数据、内存区字节数组、文件区字节数组生成发送数据,然后执行步骤A29;
A29、所述通信包读取引擎模块根据所述生成的发送数据的源长度和待发送通信包的包头中的源长度是否相等,如果是,则判断所述待发送通信包已经读完成。
在本发明所述的在网络中传送规范数据的方法中,所述步骤B具体包括以下步骤:
B1、所述接收装置的网络接收引擎模块从所述发送装置获取所述接收数据,如果所接收的数据不为空,则执行步骤B2;
B2、所述接收装置的通信包写入引擎模块根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,如需要写,则执行写通信包操作,生成所述接收通信包;写通信包完成后,执行步骤B3;
B3、所述接收装置的通信包写入引擎模块判断所述接收数据是否全部写完,如果否,则执行步骤B2,如果是,则执行步骤B4;
B4、所述接收装置的接收事件调度引擎模块异步通知上层已从网络中接收到通信包,然后继续执行步骤B1。
在本发明所述的在网络中传送规范数据的方法中,所述步骤B2具体包括以下步骤:
B21、所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于包头区域,如果是,则执行步骤B22,否则执行步骤B23;
B22、所述通信包写入引擎模块将所述接收数据和包头缓存数据进行整合,当整合数据长度等于包头的长度时,则写入通信包包头中;然后执行步骤B23;
B23、所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于保留区区域,如果是,则执行步骤B24,否则执行步骤B25;
B24、所述通信包写入引擎模块将所述接收数据和保留区缓存数据进行整合,当整合数据长度等于保留区长度时,则写入通信包保留区中;然后执行步骤B25;
B25:所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于内存区区域,如果是,则执行步骤B26,否则执行步骤B27;
B26:所述通信包写入引擎模块将所述接收数据和内存区缓存数据进行整合,当整合数据长度等于内存区数据长度时,则写入通信包内存区中,然后执行步骤B27;
B27、所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于文件头信息和分块信息的区域,如果是,则执行步骤B28,否则执行步骤B29;
B28、所述通信包写入引擎模块根据当前所在文件区域的位置,在通信包中写入完整的文件头信息或分块信息;根据写入通信包包头、保留区、内存区、文件区中的数据生成所述接收通信包,然后执行步骤B29;
B29、所述通信包写入引擎模块判断当前生成的接收通信包的源长度和所述接收数据的包头中的源长度是否相等,如果是,则认为当前通信包写完成。
在本发明所述的在网络中传送规范数据的方法中,所述包头用于描述通信包的组成结构和业务逻辑信息。
本发明还构造一种在网络中传送规范数据的系统,包括:
发送装置,用于从待发送的通信包队列中取出待发送通信包,生成发送数据,并将所述发送数据发送出去;所述发送数据是通信包,所述发送数据由包头、保留区、内存区、文件区中的一个或多个组成;
接收装置,与所述发送装置连接,用于接收所述发送装置发送过来的发送数据,如果接收数据不为空,则根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,生成接收通信包。
在本发明所述的在网络中传送规范数据的系统中,所述发送装置包括:
通信包队列引擎模块,用于从所述待发送通信包队列中取出所述待发送通信包;
通信包读取引擎模块与所述通信包队列引擎模块连接,用于读取所述待发送通信包的内容,生成所述发送数据,传递给网络发送引擎模块;
网络发送引擎模块与所述通信包读取引擎模块连接,用于将所述发送数据发送出去;
发送事件调度引擎模块与所述网络发送引擎模块连接,用于判断是否发送完成,完成则通知上层发送数据完成。
在本发明所述的在网络中传送规范数据的系统中,所述接收装置包括:
网络接收引擎模块,用于从所述发送装置获取所述接收数据;
通信包写入引擎模块,与所述网络接收引擎模块连接,用于根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,如需要写,则执行写通信包操作,生成所述接收通信包;
接收事件调度引擎模块,与所述通信包写入引擎模块连接,用于在写通信包完成后,根据生成的所述接收通信包,异步通知上层已从网络中接收到通信包;
所述通信包写入引擎模块还用于判断所述接收数据是否全部写完,如果否,则继续执行写操作。
在本发明所述的在网络中传送规范数据的装置中,所述包头用于描述通信包的组成结构和业务逻辑信息。
实施本发明的在网络中传送规范数据的方法及装置中,具有以下有益效果:发送装置将待发送通信包生成发送数据,该发送数据是通信包,包括包头、保留区、内存区、文件区中的一个或多个,该发送数据是一个规范数据;接收装置接收发送装置发送过来的发送数据,并将接收数据生成接收通信包;在发送装置和接收装置中以通信包的形式传递数据,可以传送内存、文件等数据,规范化传输数据,可降低网络传输流量、降低数据通信开发的复杂度、提高网络安全。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的在网络中传送规范数据的方法的流程图;
图2是本发明的在网络中传送规范数据的方法中步骤A的具体流程图;
图3是本发明的在网络中传送规范数据的方法中步骤A2的的具体流程图;
图4是本发明的在网络中传送规范数据的方法中步骤B的具体流程图;
图5是本发明的在网络中传送规范数据的方法中步骤B2的具体流程图;
图6是本发明的在网络中传送规范数据的系统的结构框图。
具体实施方式
为了使本发明的目的更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在本发明的在网络中传送规范数据的方法的流程图中,包括以下步骤:
A、发送装置从待发送的通信包队列中取出待发送通信包,生成发送数据,并将该发送数据发送出去;该发送数据是通信包,该发送数据由包头、保留区、内存区、文件区中的一个或多个组成;在该步骤中,该待发送的通信包队列的形成类似代办任务队列,发送装置调用队列引擎的发送通信包接口后,队列引擎将待发送通信包添加入“待发送通信包队列”中;
B、接收装置接收所述发送装置发送过来的发送数据,如果接收数据不为空,则根据接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,生成接收通信包。
进一步的,步骤A具体包括以下步骤(如图2所示):
A1、该发送装置的通信包队列引擎模块从待发送通信包队列中取出待发送通信包;
A2、该发送装置的通信包读取引擎模块读取待发送通信包的内容,生成发送数据,传递给发送装置的网络发送引擎模块;
A3、该发送装置的网络发送引擎模块将发送数据发送出去;
A4、该发送装置的发送事件调度引擎模块判断是否发送完成,完成则通知上层发送数据完成。该上层可以理解为调用者,或者是业务逻辑系统,或者是服务器对象等;可以这样理解:使用这个发送数据的对象,因为它是位于相对这个网络发送引擎模块之上的。
进一步的,步骤A2具体包括以下步骤(如图3所示):
A21、通信包读取引擎模块根据当前第一读取位置判断是否需要读取待发送通信包的包头,如果是,则执行步骤A22,否则执行步骤A23;
A22:读待发送通信包的包头数据;网络发送引擎模块根据待发送通信包和包头位置,获取待发送通信包中要发送的包头字节数组,并更新待发送通信包的读取位置为第二读取位置;然后执行步骤A23;
A23:通信包读取引擎模块根据第二读取位置判断是否需要读取待发送通信包的保留区,如果是,则执行步骤A24,否则执行步骤A25;
A24:读待发送通信包的保留区数据;网络发送引擎模块根据待发送通信包和保留区位置,获取该待发送通信包中要发送的保留区字节数组,并更新待发送通信包的读取位置为第三读取位置,然后执行步骤A25;
A25、通信包读取引擎模块根据第三读取位置判断是否需要读取待发送通信包的内存区,如果是,则执行步骤A26,否则执行步骤A27;
A26、读待发送通信包的发内存区数据;网络发送引擎模块根据待发送通信包和内存区位置,获取该待发送通信包中要发送的内存区字节数组,并更新待发送通信包的读取位置为第四读取位置,然后执行步骤A27;
A27、通信包读取引擎模块根据第四读取位置(读取位置分别包括四个位置:即包头、保留区、内存区或文件区)判断是否需要读取待发送通信包的文件区,如果是,则执行步骤A28,否则执行步骤A29;
A28、读待发送通信包的发文件区数据;网络发送引擎模块根据待发送通信包和文件区位置,获取该待发送通信包中要发送的文件区字节数组,根据获取的待发送通信包中要发送的包头字节数组、保留区字节数据、内存区字节数组、文件区字节数组生成发送数据,然后执行步骤A29;该发送数据是采用通信包的形式。
A29、通信包读取引擎模块根据当前生成的发送数据的源长度和待发送通信包的包头中的源长度是否相等,如果是,则判断待发送通信包已经读完成。该待发送通信包的包头中的源长度即为表二中的第11项数值。
进一步的,步骤B具体包括以下步骤(如图4所示):
B1、该接收装置的网络接收引擎模块从发送装置获取接收数据,如果接收数据不为空,则执行步骤B2;该发送装置可以是服务器、客户端、移动端等通信终端,各通信终端之间以通信包进行数据传输;通信包表达一组完整的业务逻辑的二进制数据集合,这样划分也便于发送装置进行分包处理,避免二进制数据“粘”在一起;
B2、该接收装置的通信包写入引擎模块根据接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,如需要写,则执行写通信包操作,生成接收通信包;写通信包完成后,执行步骤B3;
B3、该接收装置的通信包写入引擎模块判断接收数据是否全部写完,如果否,则执行步骤B2,如果是,则执行步骤B4;
B4、接收事件调度引擎模块异步通知上层已从网络中接收到通信包,然后继续执行步骤B1。该上层可以理解为调用者,或者是业务逻辑系统,或者是服务器对象等;可以这样理解:使用这个接收数据的对象,因为它是位于相对这个通信包写入引擎模块之上的。在该步骤中,接收事件调度引擎模块异步通知上层已从网络中接收到通信包,该异步通知可以使用后台线程、异步I/O口等方法实现。
进一步的,步骤B2具体包括以下步骤(如图5所示):
B21、通信包写入引擎模块根据接收数据判断当前写通信包的位置是否处于包头区域,如果是,则执行步骤B12,否则执行步骤B13;
B22、通信包写入引擎模块将接收数据和包头缓存数据进行整合,当整合数据长度等于包头的长度时,则写入通信包包头中;当整合数据长度小于包头的长度时,则继续将接收数据堆加在包头缓存数据中,然后执行步骤B23;在步骤B21中的包头缓存数据是一块临时数据,按包头的大小分配在系统内存中;当整合完成后,即缓存数据一旦完整写完后,则将整合后的数据写入通信包包头中;
B23、通信包写入引擎模块根据接收数据判断当前写通信包的位置是否处于保留区区域,如果是,则执行步骤B24,否则执行步骤B25;
B24、通信包写入引擎模块将接收数据和保留区缓存数据进行整合,当整合数据长度等于保留区长度时,则写入通信包保留区中;当整合数据长度小于保留区长度时,则继续接收数据堆加在保留区缓存数据中然后执行步骤B25;
B25:通信包写入引擎模块根据接收数据判断当前写通信包的位置是否处于内存区区域,如果是,则执行步骤B26,否则执行步骤B27;
B26:通信包写入引擎模块将接收数据和内存区缓存数据进行整合,当整合数据长度等于内存区数据长度时,则写入通信包内存区中,然后执行步骤B27;
B27、通信包写入引擎模块根据接收数据判断当前写通信包的位置是否处于文件头信息和分块信息的区域,如果是,则执行步骤B28,否则执行步骤B29;
B28、通信包写入引擎模块根据当前所在文件区域的位置,在通信包中写入完整的文件头信息或分块信息;根据写入通信包包头、保留区、内存区、文件区中的数据生成该接收通信包,然后执行步骤B29;在该步骤B28中,需要首先判断是写入文件头信息还是写入分块信息;
B29、通信包写入引擎模块判断当前生成的接收通信包的源长度和该接收数据的包头中的源长度是否相等,如果是,则认为当前通信包写完成。该接收数据的包头中的源长度即为表二中第11项的数值。
在上述生成接收通信包中的过程中,包头区、保留区和内存区都存在缓存数据,缓存数据都是首先按各自区的大小进行分配,记录写入的索引位置,用于判断是否完整写完。
在本发明的在网络中传送规范数据的方法中,该待发送的通信包、生成的发送数据、接收数据、生成的接收通信包都是采用通信包的格式,该通信包由包头、保留区、内存区、文件区中的一个或多个组成;该包头用于描述通信包的组成结构和业务逻辑信息;该通信包表达一组完整的业务逻辑的二进制数据集合,便于各发送装置进行分包处理,避免二进制数据“粘”在一起。通信包的具体结构如表一所示:
表一
当通信包不存在任何区信息(保留区、内存区或文件区)时,称之为“空”通信包。
每个通信包都有一个包头,包头用于描述通信包的特征和业务逻辑处理信息。通信包包头组成结构如表二所示:
表二
通信包的保留区长度由通信包包头中保留区长度限制。不同于内存区和文件区,保留区的数据信息是不进行加密处理。类似于邮件包裹中的接收地址、摘要信息等内容,以便接收者无需对通信包进行解密,就可以直接获取一些重要的处理信息。每个通信包中最多只能有一个保留区,也可以没有保留区。
通信包中的内存区信息,内存区的信息在接收或发送端都保存在系统物理内存中。使用系统物理内存可以极大提升处理速度。内存区根据业务需要,对通信包不是必须的,从0到多个,其最大数量为业务定制最大的内存区数目。内存区组成结构如下表三所示:
表三
通信包的文件区信息。文件区的信息在接收或发送端都保存在系统物理文件中。使用系统物理文件,可以减少对物理内存的占用,但会占用接收端的磁盘空间。文件区根据业务需要,对通信包不是必须的,从0到多个,其最大数量为业务定制最大的文件区数目。
文件区包括两部分信息:文件头信息和文件分块信息。根据文件分块的大小,将文件原始内容分成多块进行处理。文件头信息只有一个,会存在多个文件区块。文件区组成结构如下表四所示:
表四
如图6所示,是本发明的在网络中传送规范数据的系统结构框图,包括:
发送装置100,用于从待发送的通信包队列中取出待发送通信包,生成发送数据,并将该发送数据发送出去;该发送数据是通信包,该发送数据由包头、保留区、内存区、文件区中的一个或多个组成;该待发送的通信包队列的形成类似代办任务队列,发送装置调用队列引擎的发送通信包接口后,队列引擎将待发送通信包添加入“待发送通信包队列”中;
接收装置200,与发送装置100连接,用于接收发送装置100发送过来的发送数据,如果接收数据不为空,则根据接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,生成接收通信包。
具体的,发送装置100包括:
通信包队列引擎模块11,用于从待发送通信包队列中取出待发送通信包;该通信包包括包头、保留区、内存区或文件区;
通信包读取引擎模块12与通信包队列引擎模块11连接,用于读取待发送通信包的内容,生成发送数据,传递给网络发送引擎模块;
网络发送引擎模块13与通信包读取引擎模块12连接,用于将发送数据发送出去;
发送事件调度引擎模块14,与网络发送引擎模块13连接,用于判断是否发送完成,完成则通知上层待发送通信包已读完成。该上层可以理解为调用者,或者是业务逻辑系统,或者是服务器对象等;可以这样理解:使用这个发送数据的对象,因为它是位于相对这个网络发送引擎模块之上的具体的,接收装置200包括:
网络接收引擎模块21,用于从发送装置获取接收数据;
通信包写入引擎模块22与网络接收引擎模块21连接,用于根据接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,如需要写,则执行写通信包操作,生成接收通信包;
接收事件调度引擎模块23与通信包写入引擎模块22连接,用于在写通信包完成后,根据生成的接收通信包,异步通知上层已从网络中接收到通信包;该上层可以理解为调用者,或者是业务逻辑系统,或者是服务器对象等;可以这样理解:使用这个接收数据的对象,因为它是位于相对这个通信包写入引擎模块之上的;接收事件调度引擎模块23异步通知上层已从网络中接收到通信包,该异步通知可以使用后台线程、异步I/O口等方法实现。
该通信包写入引擎模块22还用于判断接收数据是否全部写完,如果否,则继续执行写操作。
在本发明的在网络中传送规范数据的系统中,在发送装置中的待发送通信包和发送数据及在接收装置中的接收数据和生成的接收通信包都是采用通信包的格式,该通信包由包头、保留区、内存区、文件区中的一个或多个组成;该包头用于描述通信包的组成结构和业务逻辑信息;该通信包表达一组完整的业务逻辑的二进制数据集合,便于各发送装置进行分包处理,避免二进制数据“粘”在一起。通信包的具体结构如前述方法中的所述,在此不赘述。
在具体实施中,该发送装置和接收装置可集成在一起,即该发送装置既可发送数据也可接收数据,该接收装置既可接收数据也可发送数据。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种在网络中传送规范数据的方法,其特征在于,包括以下步骤:
A、发送装置从待发送的通信包队列中取出所述待发送通信包,生成发送数据,并将该发送数据发送出去;所述发送数据是通信包,所述发送数据由包头、保留区、内存区、文件区中的一个或多个组成;
B、接收装置接收所述发送装置发送过来的发送数据,如果接收数据不为空,则根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,生成接收通信包。
2.根据权利要求1所述的在网络中传送规范数据的方法,其特征在于,所述步骤A具体包括以下步骤:
A1、所述发送装置的通信包队列引擎模块从所述待发送通信包队列中取出所述待发送通信包;
A2、所述发送装置的通信包读取引擎模块读取所述待发送通信包的内容,生成所述发送数据,传递给所述发送装置的网络发送引擎模块;
A3、所述发送装置的网络发送引擎模块将所述发送数据发送出去,
A4、所述发送装置的发送事件调度引擎模块判断是否发送完成,完成则通知上层所述发送数据发送完成。
3.根据权利要求2所述的在网络中传送规范数据的方法,其特征在于,所述步骤A2具体包括以下步骤:
A21、所述通信包读取引擎模块根据当前第一读取位置判断是否需要读取所述待发送通信包的包头,如果是,则执行步骤A22,否则执行步骤A23;
A22:读所述待发送通信包的包头数据;所述网络发送引擎模块根据所述待发送通信包和包头位置,获取所述待发送通信包中要发送的包头字节数组,并更新所述待发送通信包的读取位置为第二读取位置;然后执行步骤A23;
A23:所述通信包读取引擎模块根据所述第二读取位置判断是否需要读取所述待发送通信包的保留区,如果是,则执行步骤A24,否则执行步骤A25;
A24:读所述待发送通信包的保留区数据;所述网络发送引擎模块根据所述待发送通信包和保留区位置,获取所述待发送通信包中要发送的保留区字节数组,并更新所述待发送通信包的读取位置为第三读取位置,然后执行步骤A25;
A25、所述通信包读取引擎模块根据所述第三读取位置判断是否需要读取所述待发送通信包的内存区,如果是,则执行步骤A26,否则执行步骤A27;
A26、读所述待发送通信包的发内存区数据;所述网络发送引擎模块根据所述待发送通信包和内存区位置,获取所述待发送通信包中要发送的内存区字节数组,并更新所述待发送通信包的读取位置为第四读取位置,然后执行步骤A27;
A27、所述通信包读取引擎模块根据所述第四读取位置判断是否需要读取所述待发送通信包的文件区,如果是,则执行步骤A28,否则执行步骤A29;
A28、读所述待发送通信包的发文件区数据;所述网络发送引擎模块根据所述待发送通信包和文件区位置,获取所述待发送通信包中要发送的文件区字节数组,根据获取的待发送通信包中要发送的包头字节数组、保留区字节数据、内存区字节数组、文件区字节数组生成发送数据,然后执行步骤A29;
A29、所述通信包读取引擎模块根据所述当前生成的发送数据的源长度和待发送通信包的包头中的源长度是否相等,如果是,则判断所述待发送通信包已经读完成。
4.根据权利要求3所述的在网络中传送规范数据的方法,其特征在于,所述步骤B具体包括以下步骤:
B1、所述接收装置的网络接收引擎模块从所述发送装置获取所述接收数据,如果所接收的数据不为空,则执行步骤B2;
B2、所述接收装置的通信包写入引擎模块根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,如需要写,则执行写通信包操作,生成所述接收通信包;写通信包完成后,执行步骤B3;
B3、所述接收装置的通信包写入引擎模块判断所述接收数据是否全部写完,如果否,则执行步骤B2,如果是,则执行步骤B4;
B4、所述接收装置的接收事件调度引擎模块异步通知所述上层已从网络中接收到通信包,然后继续执行步骤B1。
5.根据权利要求4所述的在网络中传送规范数据的方法,其特征在于,所述步骤B2具体包括以下步骤:
B21、所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于包头区域,如果是,则执行步骤B22,否则执行步骤B23;
B22、所述通信包写入引擎模块将所述接收数据和包头缓存数据进行整合,当整合数据长度等于包头的长度时,则写入通信包包头中;然后执行步骤B23;
B23、所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于保留区区域,如果是,则执行步骤B24,否则执行步骤B25;
B24、所述通信包写入引擎模块将所述接收数据和保留区缓存数据进行整合,当整合数据长度等于保留区长度时,则写入通信包保留区中;然后执行步骤B25;
B25:所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于内存区区域,如果是,则执行步骤B26,否则执行步骤B27;
B26:所述通信包写入引擎模块将所述接收数据和内存区缓存数据进行整合,当整合数据长度等于内存区数据长度时,则写入通信包内存区中,然后执行步骤B27;
B27、所述通信包写入引擎模块根据所述接收数据判断当前写通信包的位置是否处于文件头信息和分块信息的区域,如果是,则执行步骤B28,否则执行步骤B29;
B28、所述通信包写入引擎模块根据当前所在文件区域的位置,在通信包中写入完整的文件头信息或分块信息;根据写入通信包包头、保留区、内存区、文件区中的数据生成所述接收通信包,然后执行步骤B29;
B29、所述通信包写入引擎模块判断当前生成的接收通信包的源长度和所述接收数据的包头中的源长度是否相等,如果是,则认为当前通信包写完成。
6.根据权利要求1所述的在网络中传送规范数据的方法,其特征在于,所述包头用于描述通信包的组成结构和业务逻辑信息。
7.一种在网络中传送规范数据的系统,其特征在于,包括:
发送装置(100),用于从待发送的通信包队列中取出待发送通信包,生成发送数据,并将所述发送数据发送出去;所述发送数据是通信包,所述发送数据由包头、保留区、内存区、文件区中的一个或多个组成;
接收装置(200),与所述发送装置(100)连接,用于接收所述发送装置发送过来的发送数据,如果接收数据不为空,则根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,生成接收通信包。
8.根据权利要求7所述的在网络中传送规范数据的系统,其特征在于,所述发送装置(100)包括:
通信包队列引擎模块(11),用于从所述待发送通信包队列中取出所述待发送通信包;
通信包读取引擎模块(12)与所述通信包队列引擎模块(11)连接,用于读取所述待发送通信包的内容,生成所述发送数据,传递给网络发送引擎模块;
网络发送引擎模块(13)与所述通信包读取引擎模块(12)连接,用于将所述发送数据发送出去;
发送事件调度引擎模块(14)与所述网络发送引擎模块(13)连接,用于判断是否发送完成,完成则通知上层发送数据完成。
9.根据权利要求8所述的在网络中传送规范数据的系统,其特征在于,所述接收装置(200)包括:
网络接收引擎模块(21),用于从所述发送装置获取所述接收数据;
通信包写入引擎模块(22),与所述网络接收引擎模块(21)连接,用于根据所述接收数据判断是否需要写通信包的包头、保留区、内存区或文件区,如需要写,则执行写通信包操作,生成所述接收通信包;
接收事件调度引擎模块(23),与所述通信包写入引擎模块(22)连接,用于在写通信包完成后,根据生成的所述接收通信包,异步通知上层已从网络中接收到通信包;
所述通信包写入引擎模块还用于判断所述接收数据是否全部写完,如果否,则继续执行写操作。
10.根据权利要求7所述的在网络中传送规范数据的系统,其特征在于,所述包头用于描述通信包的组成结构和业务逻辑信息。
CN201310035893.9A 2013-01-30 2013-01-30 一种在网络中传输规范数据的方法及系统 Active CN103118023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310035893.9A CN103118023B (zh) 2013-01-30 2013-01-30 一种在网络中传输规范数据的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310035893.9A CN103118023B (zh) 2013-01-30 2013-01-30 一种在网络中传输规范数据的方法及系统

Publications (2)

Publication Number Publication Date
CN103118023A CN103118023A (zh) 2013-05-22
CN103118023B true CN103118023B (zh) 2016-03-09

Family

ID=48416297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310035893.9A Active CN103118023B (zh) 2013-01-30 2013-01-30 一种在网络中传输规范数据的方法及系统

Country Status (1)

Country Link
CN (1) CN103118023B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111327649B (zh) * 2018-12-14 2023-04-21 中国电信股份有限公司 业务数据处理方法、装置、smf以及系统、存储介质
CN114201425B (zh) * 2021-11-19 2024-05-07 广州地铁设计研究院股份有限公司 一种可弥补通信速率慢的通信方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131865A (ja) * 2001-10-22 2003-05-09 Sony Corp 表示装置および表示方法、表示制御装置および表示制御方法、表示システム、並びにプログラム
CN101119219A (zh) * 2007-09-12 2008-02-06 中兴通讯股份有限公司 一种广播组播业务中数据传输的实现方法及系统
CN102118395A (zh) * 2011-03-11 2011-07-06 北京神舟航天软件技术有限公司 基于soap协议实现的保障性跨域数据传输组件及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131865A (ja) * 2001-10-22 2003-05-09 Sony Corp 表示装置および表示方法、表示制御装置および表示制御方法、表示システム、並びにプログラム
CN101119219A (zh) * 2007-09-12 2008-02-06 中兴通讯股份有限公司 一种广播组播业务中数据传输的实现方法及系统
CN102118395A (zh) * 2011-03-11 2011-07-06 北京神舟航天软件技术有限公司 基于soap协议实现的保障性跨域数据传输组件及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
对远程数据传输中数据规范的分析;魏跃峰、许晓晖;《信息与电脑》;20111215(第12期);第58-59页 *

Also Published As

Publication number Publication date
CN103118023A (zh) 2013-05-22

Similar Documents

Publication Publication Date Title
KR101006114B1 (ko) 콘텐츠 푸시 서비스
CN100542341C (zh) 实现移动终端间数据共享的方法和设备
Ma et al. General application research on GSM module
CN102790776B (zh) 心跳连接归一处理方法、终端、服务器及通信系统
CN112003937B (zh) 卫星数据传输方法、装置、计算机设备、存储介质
CN102857505B (zh) 一种物联网数据总线中间件系统
CN107294869A (zh) 一种虚拟网卡报文抓取的方法及系统
CN103078921B (zh) 一种发送、接收消息的方法及装置
US11347567B2 (en) Methods and apparatus for multiplexing data flows via a single data structure
CN105141603A (zh) 通信数据传输方法及系统
CN105188090A (zh) 一种实现短信下行压力均衡的方法及系统
CN111741072B (zh) 基于设备虚拟化的低带宽高安全性的数据传输方法
CN103118023B (zh) 一种在网络中传输规范数据的方法及系统
CN106656778A (zh) 一种北斗卫星导航系统的通信网关及其通信方法
CN105228114A (zh) 一种基于电力故障定位系统的加密短信收发系统及方法
US20210250743A1 (en) Connecting computer processing systems and transmitting data
CN101707623A (zh) 一种小内存系统中的文件发送方法及装置
CN102299861B (zh) 一种报文流量控制方法
CN103179175A (zh) 远程信息服务系统及其通讯方法、装置
CN106487492A (zh) 一种数据映射方法、装置及设备
CN102547661B (zh) 一种Android系统与电信智能卡通信的方法及装置
CN107295485B (zh) 彩信附件管理方法、装置及通信系统
CN105049474A (zh) 一种新的个人私密信息分享的系统及方法
CN101282201B (zh) 一种通讯设备中消息监控的方法和设备
CN108737525A (zh) 一种基于REST架构的Web服务系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant