CN103197958A - 一种数据传输方法及系统与转发器设备 - Google Patents
一种数据传输方法及系统与转发器设备 Download PDFInfo
- Publication number
- CN103197958A CN103197958A CN2013101109793A CN201310110979A CN103197958A CN 103197958 A CN103197958 A CN 103197958A CN 2013101109793 A CN2013101109793 A CN 2013101109793A CN 201310110979 A CN201310110979 A CN 201310110979A CN 103197958 A CN103197958 A CN 103197958A
- Authority
- CN
- China
- Prior art keywords
- target device
- memory block
- described target
- thread
- director data
- 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.)
- Granted
Links
Images
Landscapes
- Radar Systems Or Details Thereof (AREA)
Abstract
本发明公开了一种数据传输方法及系统与转发器设备。所述方法包括:转发器设备锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取目标内存块;当有指令数据到来,转发器设备将指令数据写入目标内存块;转发器设备将内存队列中目标内存块的下一块内存块加锁;转发器设备解锁目标内存块,以供各目标设备对应的线程读取目标内存块,每个设备对应的线程解析指令数据是否是发送给目标设备的,若是,则向目标设备发送指令数据。本发明还公开了用于实现所述方法的转发器设备和系统。本发明的技术方案,能够实现同时向多个目标设备并发传输数据,减少整个数据传输的时间较长,提高数据传输效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据传输方法及系统与转发器设备。
背景技术
随着科技的发展,数据传输是计算机网络技术领域中必须可少的技术。
现有技术中,通常会存在一个转发器设备A向多个目标设备B、C和D等发送相同数据的场景,该数据传输场景可以简称为一对多的数据传输场景。在该场景中,转发器设备A均与每个目标设备如目标设备B、目标设备C和目标设备D均建立连接,并逐一向每个目标设备发送相同的数据。在该场景中,有多少个目标设备,转发器设备A就需要建立多少条连接,且需要发送多少次相同的数据,以保证能够向每个目标设备发送到数据。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:上述现有技术的一对多的数据传输技术中,转发器设备A通过逐一向每个目标设备发送相同的数据的方式来传输数据,导致完成整个数据传输的时间较长,数据传输效率较低。
发明内容
本发明实施例提供一种数据传输方法及系统与转发器设备,用于实现转发器设备向多个目标设备并发传输数据,减少整个数据传输的时间较长,提高数据传输效率。
第一方面,本发明提供一种数据传输方法,包括以下步骤:
转发器设备锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取所述目标内存块;
当有指令数据到来,所述转发器设备将所述指令数据写入所述目标内存块;
所述转发器设备将所述内存队列中所述目标内存块的下一块内存块加锁;
所述转发器设备解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块,并供各所述目标设备对应的线程解析所述指令数据是否是发送给所述目标设备的,若是,则向所述目标设备发送所述指令数据。
可选地,结合上述第一方面,在上述第一方面的第一实现方式中,所述内存队列为环形内存队列。
可选地,结合上述第一方面或其第一实现方式,在上述第一方面的第二实现方式中,转发器设备锁住内存队列中当前待写入的目标内存块之前,还包括:
所述转发器设备接收所述目标设备的登录请求,并确定所述目标设备的所述登录请求合法,允许所述目标设备登录上线;
所述转发器设备创建与所述目标设备之间的线程。
可选地,结合上述第一方面的第二实现方式,在上述第一方面的第三实现方式中,
所述转发器设备解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块,并供各所述目标设备对应的线程解析所述指令数据是否是发送给所述目标设备的,若是,则向所述目标设备发送所述指令数据,具体包括:
所述转发器设备解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块中的所述指令数据,并供各所述目标设备对应的线程依据预设的权限关系判断是否有权限,若是,确定有权限读取所述指令数据;各所述目标设备对应的线程进一步判断所述指令数据中是否包括所述目标设备的标识,若包括,确定所述指令数据是发送给所述目标设备的,并向所述目标设备发送所述指令数据。
可选地,结合上述第一方面的第二实现方式,在上述第一方面的第四实现方式中,所述转发器设备创建与所述目标设备之间的线程之后,还包括:
当所述目标设备下线,所述转发器设备销毁与所述目标设备之间的线程。
可选地,结合上述第一方面的第二实现方式,在上述第一方面的第五实现方式中,所述转发器设备解锁所述目标内存块之后,还包括:
当各所述目标设备对应的线程读取所述目标内存块时,所述转发器设备再次对所述目标内存块进行加锁,以禁止继续向所述目标内存写入新的指令数据。
第二方面,本发明提供一种转发器设备,包括:
加锁模块,用于锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取所述目标内存块;
指令写入模块,用于当有指令数据到来,将所述指令数据写入所述目标内存块;
所述加锁模块,还用于将所述内存队列中所述目标内存块的下一块内存块加锁;
解锁模块,用于解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块,并供各所述目标设备对应的线程解析所述指令数据是否是发送给所述目标设备的,若是,则向所述目标设备发送所述指令数据。
可选地,结合上述第二方面,在上述第二方面的第一实现方式中,所述内存队列为环形内存队列。
可选地,结合上述第二方面或其第一实现方式,在上述第二方面的第二实现方式中,所述设备还包括:
接收模块,用于接收所述目标设备的登录请求;
确定模块,用于确定所述目标设备的所述登录请求合法,允许所述目标设备登录上线;
线程创建模块,用于创建与所述目标设备之间的线程。
可选地,结合上述第二方面的第二实现方式,在上述第二方面的第三实现方式中,
所述解锁模块,具体用于解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块中的所述指令数据,并供各所述目标设备对应的线程依据预设的权限关系判断是否有权限,若是,确定有权限读取所述指令数据;各所述目标设备对应的线程进一步判断所述指令数据中是否包括所述目标设备的标识,若包括,确定所述指令数据是发送给所述目标设备的,并向所述目标设备发送所述指令数据。
可选地,结合上述第二方面的第二实现方式,在上述第二方面的第四实现方式中,所述设备还包括:
线程销毁模块,用于当所述目标设备下线,所述转发器设备销毁与所述目标设备之间的线程。
可选地,结合上述第二方面的第二实现方式,在上述第二方面的第五实现方式中,所述加锁模块,还用于当各所述目标设备对应的线程读取所述目标内存块时,再次对所述目标内存块进行加锁,以禁止继续向所述目标内存写入新的指令数据。
第三方面,本发明提供一种数据传输系统,包括至少两个目标设备和转发器设备,所述至少两个目标设备分别与所述转发器设备通信连接,所述转发器设备采用如上任一所述的转发器设备。
本发明的数据传输方法及系统与转发器设备,转发器设备通过锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取所述目标内存块;当有指令数据到来,转发器设备将所述指令数据写入目标内存块;转发器设备将内存队列中目标内存块的下一块内存块加锁;转发器设备解锁目标内存块,以供各目标设备对应的线程读取目标内存块,并解析指令数据是否是发送给该目标设备的,若是,则向该目标设备发送指令数据。本发明通过采用上述技术方案,多个目标设备对应的线程能够同时读取目标内存块,且各线程能够解析指令数据是否是发送给该线程对应的目标设备,若是,可以向该线程对应的目标设备发送该指令数据,由此可知,本发明技术方案中,转发器设备不用逐一向各目标设备发送指令数据,能够实现同时向多个目标设备并发传输数据,减少整个数据传输的时间较长,提高数据传输效率;从而克服现有技术中转发器设备通过逐一向每个目标设备发送相同的数据的方式来传输数据,导致完成整个数据传输的时间较长,数据传输效率较低的缺陷。
进一步地,本发明的技术方案中,内存队列可以为环形内存队列,这样可以便于内存队列的管理,提高数据传输的效率。
进一步地,本发明的技术方案中,转发器设备接收目标设备的登录请求,并确定目标设备的所述登录请求合法,允许目标设备登录上线,并创建与目标设备之间的线程,以及当目标设备下线,转发器设备销毁与目标设备之间的线程,采用上述技术方案,转发器设备能够灵活地管理与目标设备间的线程,保证转发器设备与目标设备之间的数据的有效传输。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例一提供的数据传输方法的流程图。
图2为本发明实施例二提供的数据传输方法的流程图。
图3为本发明实施例三提供的转发器设备的结构示意图。
图4为本发明实施例四提供的转发器设备的结构示意图。
图5为本发明实施例五提供的数据传输系统的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例一
图1为本发明实施例一提供的数据传输方法的流程图。如图1所示,本实施例的数据传输方法,具体可以包括以下步骤:
100、转发器设备锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取目标内存块;
本实施例中,内存队列是按照顺序被写和读的,当当前待写入的目标内存块被锁住时,表示该目标内存块正在准备被写入指令数据或者正在被写入指令数据。所有目标设备对应的线程都阻塞等待这个目标内存块解锁后,再读取。
该步骤中,转发器设备锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取目标内存块,该步骤的加锁可以认为是读加锁,即该加锁之后,该目标内存块允许被写入指令数据,而禁止被读取指令数据。
101、当有指令数据到来,转发器设备将指令数据写入目标内存块;
本实施例的指令数据为上层发送给转发器设备的。例如该指令数据可以为需要发送给目标设备A、目标设备B和目标设备D的数据。其中该指令数据中可以包括目标设备A、目标设备B和目标设备D的标识和要发送给目标设备A、目标设备B和目标设备D的数据,且还可以包括发送该数据的源设备的标识,以及源设备的权限等等其他参数。
102、转发器设备将内存队列中目标内存块的下一块内存块加锁;
具体地,由于步骤101中转发器设备已将指令数据写入目标内存块,此时可以准备解锁该内存块以供所有目标设备对应的线程读取目标内存块。但是若直接解锁该内存块,此时转发器无法写入新来的指令数据,导致转发器无法正常的进行数据传输,由于内存队列中是按照顺序来写输入的,因此必须先将内存队列中目标内存块的下一块内存块加锁,以供目标内存块的下一块内存块加锁,以在准备被写入指令数据或者正在被写入指令数据。
103、转发器设备解锁目标内存块,以供各目标设备对应的线程读取目标内存块,并供各目标设备对应的线程解析指令数据是否是发送给该目标设备的,若是,则向该目标设备发送指令数据。
转发器设备解锁目标内存块之后,各目标设备对应的线程就同时读取该目标内存块,例如目标设备A、目标设备B、目标设备C和目标设备D的线程都同时读取该目标内存块,且每个目标设备对应的线程都解析该指令数据是否是发送该目标设备的。具体地,参考上述实施例的记载,指令数据中可以包括要发送的目标设备的标识,例如目标设备A的线程解析该指令数据中是否包括有目标设备A的标识,如果包括,则表示该指令数据是发送给目标设备A的,此时目标设备A的线程则向该目标设备A发送该指令数据。
同理目标设备B、目标设备C和目标设备D的线程可以分别进行上述类似解析,确定该指令数据是否是发送给其自身的,若是对应的线程则获取该指令数据,将其发送给对应的目的标备。
本实施例的数据传输方法,转发器设备通过锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取目标内存块;当有指令数据到来,转发器设备将指令数据写入目标内存块;转发器设备将内存队列中目标内存块的下一块内存块加锁;转发器设备解锁目标内存块,以供各目标设备对应的线程读取目标内存块,并解析指令数据是否是发送给该目标设备的,若是,则向该目标设备发送指令数据。本实施例通过采用上述技术方案,多个目标设备对应的线程能够同时读取目标内存块,且各线程能够解析指令数据是否是发送给该线程对应的目标设备,若是,可以向该线程对应的目标设备发送该指令数据,由此可知,本实施例技术方案中,转发器设备不用逐一向各目标设备发送指令数据,能够实现同时向多个目标设备并发传输数据,减少整个数据传输的时间较长,提高数据传输效率;从而克服现有技术中转发器设备通过逐一向每个目标设备发送相同的数据的方式来传输数据,导致完成整个数据传输的时间较长,数据传输效率较低的缺陷。
进一步可选地,在上述图1所示实施例的技术方案的基础上,内存队列可以为环形内存队列,这样可以便于内存队列的管理,提高数据传输的效率。
进一步可选地,在上述图1所示实施例的技术方案的基础上,步骤100“转发器设备锁住内存队列中当前待写入的目标内存块”之前,还可以包括如下两个步骤:
(a)转发器设备接收目标设备的登录请求,并确定目标设备的登录请求合法,允许目标设备登录上线;确定目标设备的登录请求合法的过程是转发器对目标设备的登录请求进行检测的过程,该登录请求中还可以携带一些参数信息,如目标设备要登录的转发器设备的标识,转发器设备根据登录请求中的参数信息验证登录请求是否合法,例如可以判断登录请求中的转发器设备的标识是否是当前转发器设备的标识,若是,则确定该目标设备的登录请求合法,允许该目标设备登录上线;否则的话,,则确定该目标设备的登录请求不合法,不允许该目标设备登录上线,而需要高目标设备重新登录。当然,实际应用中,还可以有许多其他验证目标设备的登录请求是否合法的方法,在此不再一一赘述。
(b)转发器设备创建与目标设备之间的线程。
该线程对应转发器设备与目标设备之间的连接,该线程对目标内存块进行读操作,还能向连接对象另一端的目标设备发送数据。
具体地址,各目标设备的线程是设置在转发器设备一侧,代替个目标设备执行本发明实施例中的一些功能。
进一步可选地,上述图1所示实施例中的步骤103“转发器设备解锁目标内存块,以供各目标设备对应的线程读取目标内存块,并供各目标设备对应的线程解析指令数据是否是发送给目标设备的,若是,则向目标设备发送指令数据”,具体包括:
转发器设备解锁目标内存块,以供各目标设备对应的线程读取目标内存块中的指令数据,并供各目标设备对应的线程依据预设的权限关系判断是否有权限,若是,确定有权限读取指令数据;各目标设备对应的线程进一步判断指令数据中是否包括目标设备的标识,若包括,确定指令数据是发送给目标设备的,并向目标设备发送指令数据。
本实施例中该指令数据中包括源设备的权限、要传输的数据,以及该数据要被传输到的目标设备的标识。
例如转发器设备解锁目标内存块,在转发器设备侧,目标设备A、目标设备B、目标设备C和目标设备D的线程均开始读取目标内存块中的指令数据,并供各目标设备对应的线程依据预设的权限关系判断是否有权限。例如,本实施例中目标设备A的权限等于源设备的权限,目标设备C的权限高于源设备的权限,这样,目标设备A、目标设备B、目标设备C和目标设备D中只有目标设备A和目标设备C有权限读取该指令数据;进一步目标设备A的线程判断指令数据中是否包括目标设备A的标识,若包括,目标设备A的线程确定指令数据是发送给目标设备A的,并向目标设备A发送指令数据。同时进一步目标设备C的线程也判断指令数据中是否包括目标设备C的标识,若包括,目标设备C的线程确定指令数据是发送给目标设备C的,并向目标设备C发送指令数据。
进一步可选地,在上述实施例的技术方案的基础上,步骤(b)“转发器设备创建与目标设备之间的线程”之后,还可以包括:当目标设备下线,转发器设备销毁与目标设备之间的线程。
进一步可选地,在上述实施例的技术方案的基础上,步骤103“转发器设备解锁目标内存块”之后,还可以包括:当各目标设备对应的线程读取目标内存块时,转发器设备再次对目标内存块进行加锁,以禁止继续向目标内存写入新的指令数据。这样可以避免当前目标内存块被读取的时候,转发器设备再向目标内存块写入新的指令数据。该步骤中的加锁可以认为是写加锁,即该加锁之后,可以允许目标内存块被读取指令数据,而禁止被写入新的指令数据。
采用上述技术方案,转发器设备能够灵活地管理与目标设备间的线程,保证转发器设备与目标设备之间的数据的有效传输。
上述所有可选技术方案,可以采用可以结合的方式任意结合,形成本发明的可选实施例,在此不再赘述。
实施例二
图2为本发明实施例二提供的数据传输方法的流程图。如图2所示,本实施例的数据传输方法在上述图1及其可选实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。如图2所示,本实施例的数据传输方法,具体可以包括以下步骤:
200、目标设备A、目标设备B、目标设备C和目标设备D分别向转发器设备发送登录请求;
本实施例中以包括四个目标设备,即目标设备A、目标设备B、目标设备C和目标设备D为例介绍本发明的技术方案。
201、转发器设备判断目标设备A、目标设备B、目标设备C和目标设备D的登录请求是否合法,若合法,执行步骤202;否则当登录请求不合法,执行步骤203;
实际应用中,对每个目标设备的登录请求也是分别判断。例如转发器设备通过判断登录请求中的转发器设备的标识是否为自身,若是确定登录请求合法。同理还可以采用其他方式判断登录请求是否合法。
202、转发器设备允许该目标设备登录上线,并分别创建与目标设备A、目标设备B、目标设备C和目标设备D之间的线程;执行步骤204;
203、转发器设备分别向目标设备A、目标设备B、目标设备C和目标设备D发送重新登录的消息;返回步骤200,重新进行登录;
实际应用中哪个目标设备的登录请求不合法,仅向不合法的登录请求的目标设备发送重新登录的消息即可,不需要向所有登录的目标设备发送。本实施例中以目标设备A、目标设备B、目标设备C和目标设备D的登录均不合法为例。
204、转发器设备锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取目标内存块;执行步骤205;
本实施例的内存队列可以为环形内存队列。该步骤中的锁住内存队列中当前待写入的目标内存块为读加锁,该加锁之后,可以允许在该目标内存块写入新的指令数据,而禁止读取该目标内存块。
205、当有指令数据到来,转发器设备将指令数据写入目标内存块;该指令数据中携带目标设备A和目标设备C的标识,以及要发送给目标设备A和目标设备C的数据;执行步骤206;
该指令数据表示要将数据发送给目标设备A和目标设备C。
206、转发器设备将内存队列中目标内存块的下一块内存块加锁;执行步骤207;
207、转发器设备解锁目标内存块;执行步骤208;
208、目标设备A、目标设备B、目标设备C和目标设备D的线程均读取目标内存块中的指令数据,并经判断确定目标设备A权限等于指令数据中源设备的权限,目标设备C的权限高于指令数据中源设备的权限;执行步骤209;
该指令数据中携带源设备的权限、目标设备的标识和要发送给目标设备的数据。经该步骤的判断,可以知道目标设备A、目标设备B、目标设备C和目标设备D中只有目标设备A和目标设备C有权限读取该指令数据。
由上述目标设备A权限等于指令数据中源设备的权限,目标设备C的权限高于指令数据中源设备的权限,可以知道目标设备A和目标设备C有权限读取源设备的指令数据。而目标设备B和目标设备D权限低于指令数据中源设备的权限,即目标设备B和目标设备D没有权限读取源设备的指令数据。
209、目标设备A的线程经判断确定指令数据中包括目标设备A的标识,并向目标设备A发送指令数据;而同时目标设备C的线程经判断确定指令数据中不包括目标设备C的标识,结束。
由于指令数据中包括目标设备A的标识,可以知道该指令数据需要发送给目标设备A。由于指令数据中不包括目标设备C的标识,可以知道该指令数据不需要发送给目标设备C。
本实施例的数据传输方法,多个目标设备对应的线程能够同时读取目标内存块,且各线程能够解析指令数据是否是发送给该线程对应的目标设备,若是,可以向该线程对应的目标设备发送该指令数据,由此可知,本实施例技术方案中,转发器设备不用逐一向各目标设备发送指令数据,能够实现同时向多个目标设备并发传输数据,减少整个数据传输的时间较长,提高数据传输效率;从而克服现有技术中转发器设备通过逐一向每个目标设备发送相同的数据的方式来传输数据,导致完成整个数据传输的时间较长,数据传输效率较低的缺陷。
进一步地,本实施例的技术方案,转发器设备能够灵活地管理与目标设备间的线程,保证转发器设备与目标设备之间的数据的有效传输。
实施例三
图3为本发明实施例三提供的转发器设备的结构示意图。如图3所示,本实施例的转发器设备,包括:加锁模块10、指令写入模块11和解锁模块12。
其中加锁模块10用于锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取目标内存块;指令写入模块11与加锁模块10连接,用于在加锁模块10锁住内存队列中当前待写入的目标内存块之后,当有指令数据到来,将指令数据写入目标内存块;然后,加锁模块10还用于将内存队列中目标内存块的下一块内存块加锁;解锁模块12分别与指令写入模块11与加锁模块10连接,用于在指令写入模块11将指令数据写入目标内存块之后,以及加锁模块10将内存队列中目标内存块的下一块内存块加锁之后,解锁目标内存块,以供各目标设备对应的线程读取目标内存块,并供各目标设备对应的线程解析指令数据是否是发送给目标设备的,若是,则向目标设备发送指令数据。
本实施例的转发器设备,通过采用上述模块实现数据传输与上述相关方法实施例的实现机制相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本实施例的转发器设备,通过采用上述模块实现通过锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取目标内存块;当有指令数据到来,将指令数据写入目标内存块;将内存队列中目标内存块的下一块内存块加锁;解锁目标内存块,以供各目标设备对应的线程读取目标内存块,并解析指令数据是否是发送给该目标设备的,若是,则向该目标设备发送指令数据。本实施例通过采用上述技术方案,多个目标设备对应的线程能够同时读取目标内存块,且各线程能够解析指令数据是否是发送给该线程对应的目标设备,若是,可以向该线程对应的目标设备发送该指令数据,由此可知,本实施例技术方案中,转发器设备不用逐一向各目标设备发送指令数据,能够实现同时向多个目标设备并发传输数据,减少整个数据传输的时间较长,提高数据传输效率;从而克服现有技术中转发器设备通过逐一向每个目标设备发送相同的数据的方式来传输数据,导致完成整个数据传输的时间较长,数据传输效率较低的缺陷。
实施例四
图4为本发明实施例四提供的转发器设备的结构示意图。如图4所示,本实施例的转发器设备在上述图3所示实施例的基础上,进一步包括如下技术方案。
本实施例的转发器设备中,内存队列为环形内存队列。
进一步可选地,如图4所示,本实施例的转发器设备中,还包括接收模块13、确定模块14和线程创建模块15。
其中接收模块13用于接收目标设备的登录请求;确定模块14与接收模块13连接,确定模块14用于确定接收模块13接收的目标设备的登录请求合法,允许目标设备登录上线;线程创建模块15与确定模块14连接,用于当确定模块14确定目标设备的登录请求合法时,创建与目标设备之间的线程。此时对应的解锁模块12还可以与线程创建模块15连接,解锁模块12用于在将内存队列中目标内存块的下一块内存块加锁之后,解锁目标内存块,以供线程创建模块15创建的各目标设备对应的线程读取目标内存块,并解析指令数据是否是发送给目标设备的,若是,则向目标设备发送指令数据。
进一步可选地,本实施例的转发器设备中,解锁模块12具体用于解锁目标内存块,以供各目标设备对应的线程读取目标内存块中的指令数据,并供各目标设备对应的线程依据预设的权限关系判断是否有权限,若是,确定有权限读取指令数据;各目标设备对应的线程进一步判断指令数据中是否包括目标设备的标识,若包括,确定指令数据是发送给目标设备的,并向目标设备发送指令数据。
进一步可选地,本实施例的转发器设备中,还包括线程销毁模块16。该线程销毁模块16与线程创建模块15连接,用于在线程创建模块15创建与目标设备之间的线程之后,当目标设备下线,销毁与目标设备之间的线程。
进一步可选地,本实施例的转发器设备中,加锁模块10还用于当各目标设备对应的线程读取目标内存块时,再次对目标内存块进行加锁,以禁止继续向目标内存写入新的指令数据。
本实施例的转发器设备,采用的上述所有可选技术方案,可以采用可以结合的方式任何结合,形成本发明的可选实施例,在此不再赘述。
本实施例的转发器设备,通过采用上述模块实现数据传输与上述相关方法实施例的实现机制相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
本实施例的转发器设备,通过采用上述模块实现多个目标设备对应的线程能够同时读取目标内存块,且各线程能够解析指令数据是否是发送给该线程对应的目标设备,若是,可以向该线程对应的目标设备发送该指令数据,由此可知,本实施例技术方案中,转发器设备不用逐一向各目标设备发送指令数据,能够实现同时向多个目标设备并发传输数据,减少整个数据传输的时间较长,提高数据传输效率;从而克服现有技术中转发器设备通过逐一向每个目标设备发送相同的数据的方式来传输数据,导致完成整个数据传输的时间较长,数据传输效率较低的缺陷。
进一步地,本实施例的技术方案,转发器设备能够灵活地管理与目标设备间的线程,保证转发器设备与目标设备之间的数据的有效传输。
实施例五
图5为本发明实施例五提供的数据传输系统的结构示意图。如图5所示,本实施例的数据传输系统包括至少两个目标设备20和转发器设备30,至少两个目标设备20分别与转发器设备30通信连接,转发器设备20采用如上实施例三或者四的转发器设备。且具体可以采用上述实施例一或者二所示实施例的数据传输方法,实现转发器设备与至少两个目标设备之间的并发数据传输,从而通过数据传输效率。详细可以参考上述实施例一至四的记载,在此不再赘述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种数据传输方法,其特征在于,包括以下步骤:
转发器设备锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取所述目标内存块;
当有指令数据到来,所述转发器设备将所述指令数据写入所述目标内存块;
所述转发器设备将所述内存队列中所述目标内存块的下一块内存块加锁;
所述转发器设备解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块,并供各所述目标设备对应的线程解析所述指令数据是否是发送给所述目标设备的,若是,则向所述目标设备发送所述指令数据。
2.如权利要求1所述的方法,其特征在于,所述内存队列为环形内存队列。
3.如权利要求1或2所述的方法,其特征在于,转发器设备锁住内存队列中当前待写入的目标内存块之前,所述方法还包括:
所述转发器设备接收所述目标设备的登录请求,并确定所述目标设备的所述登录请求合法,允许所述目标设备登录上线;
所述转发器设备创建与所述目标设备之间的线程。
4.如权利要求3所述的方法,其特征在于,所述转发器设备解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块,并供各所述目标设备对应的线程解析所述指令数据是否是发送给所述目标设备的,若是,则向所述目标设备发送所述指令数据,具体包括:
所述转发器设备解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块中的所述指令数据,并供各所述目标设备对应的线程依据预设的权限关系判断是否有权限,若是,确定有权限读取所述指令数据;各所述目标设备对应的线程进一步判断所述指令数据的目标设备字段中是否包括所述目标设备或该设备所属组的标识,若包括,确定所述指令数据是发送给所述目标设备的,并向所述目标设备发送所述指令数据。
5.如权利要求3所述的方法,其特征在于,所述转发器设备创建与所述目标设备之间的线程之后,所述方法还包括:
当所述目标设备下线,所述转发器设备销毁与所述目标设备之间的线程。
6.如权利要求3所述的方法,其特征在于,所述转发器设备解锁所述目标内存块之后,所述方法还包括:
当各所述目标设备对应的线程读取所述目标内存块时,所述转发器设备再次对所述目标内存块进行加锁,以禁止继续向所述目标内存写入新的指令数据。
7.一种转发器设备,其特征在于,包括:
加锁模块,用于锁住内存队列中当前待写入的目标内存块,以禁止所有目标设备对应的线程读取所述目标内存块;
指令写入模块,用于当有指令数据到来,将所述指令数据写入所述目标内存块;
所述加锁模块,还用于将所述内存队列中所述目标内存块的下一块内存块加锁;
解锁模块,用于解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块,并供各所述目标设备对应的线程解析所述指令数据是否是发送给所述目标设备的,若是,则向所述目标设备发送所述指令数据。
8.如权利要求7所述的设备,其特征在于,所述内存队列为环形内存队列。
9.如权利要求7或8所述的设备,其特征在于,所述设备还包括:
接收模块,用于接收所述目标设备的登录请求;
确定模块,用于确定所述目标设备的所述登录请求合法,允许所述目标设备登录上线;
线程创建模块,用于创建与所述目标设备之间的线程。
10.如权利要求9所述的设备,其特征在于:
所述解锁模块,具体用于解锁所述目标内存块,以供各所述目标设备对应的线程读取所述目标内存块中的所述指令数据,并供各所述目标设备对应的线程依据预设的权限关系判断是否有权限,若是,确定有权限读取所述指令数据;各所述目标设备对应的线程进一步判断所述指令数据中是否包括所述目标设备的标识,若包括,确定所述指令数据是发送给所述目标设备的,并向所述目标设备发送所述指令数据。
11.如权利要求9所述的设备,其特征在于,所述设备还包括:
线程销毁模块,用于当所述目标设备下线,销毁与所述目标设备之间的线程。
12.如权利要求9所述的设备,其特征在于:
所述加锁模块,还用于当各所述目标设备对应的线程读取所述目标内存块时,再次对所述目标内存块进行加锁,以禁止继续向所述目标内存写入新的指令数据。
13.一种数据传输系统,包括至少两个目标设备和转发器设备,所述至少两个目标设备分别与所述转发器设备通信连接,所述转发器设备采用如上权利要求7-12任一所述的转发器设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310110979.3A CN103197958B (zh) | 2013-04-01 | 2013-04-01 | 一种数据传输方法及系统与转发器设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310110979.3A CN103197958B (zh) | 2013-04-01 | 2013-04-01 | 一种数据传输方法及系统与转发器设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103197958A true CN103197958A (zh) | 2013-07-10 |
CN103197958B CN103197958B (zh) | 2016-08-10 |
Family
ID=48720548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310110979.3A Expired - Fee Related CN103197958B (zh) | 2013-04-01 | 2013-04-01 | 一种数据传输方法及系统与转发器设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103197958B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632594A (zh) * | 2017-11-06 | 2018-01-26 | 苏州科技大学 | 一种基于无线网络的电器集中控制系统和控制方法 |
CN107704325A (zh) * | 2016-08-08 | 2018-02-16 | 北京百度网讯科技有限公司 | 用于进程间传输消息的方法和装置 |
CN107765991A (zh) * | 2016-08-19 | 2018-03-06 | 北京百度网讯科技有限公司 | 用于传输消息的方法和装置 |
CN108710531A (zh) * | 2018-04-20 | 2018-10-26 | 深圳市文鼎创数据科技有限公司 | 循环队列的数据写入方法、装置、终端设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040148283A1 (en) * | 2003-01-27 | 2004-07-29 | Jason Harris | Event driven transaction state management with single cache for persistant framework |
CN1545041A (zh) * | 2003-11-14 | 2004-11-10 | 港湾网络有限公司 | 基于mips64的双cpu微内核 |
US20070044103A1 (en) * | 2005-07-25 | 2007-02-22 | Mark Rosenbluth | Inter-thread communication of lock protected data |
CN102594884A (zh) * | 2012-02-09 | 2012-07-18 | 成都三零凯天通信实业有限公司 | 基于b/s架构多级数据自动分发与同步的方法与系统 |
CN102722449A (zh) * | 2012-05-24 | 2012-10-10 | 中国科学院计算技术研究所 | 基于SSD的Key-Value型本地存储方法及系统 |
-
2013
- 2013-04-01 CN CN201310110979.3A patent/CN103197958B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040148283A1 (en) * | 2003-01-27 | 2004-07-29 | Jason Harris | Event driven transaction state management with single cache for persistant framework |
CN1545041A (zh) * | 2003-11-14 | 2004-11-10 | 港湾网络有限公司 | 基于mips64的双cpu微内核 |
US20070044103A1 (en) * | 2005-07-25 | 2007-02-22 | Mark Rosenbluth | Inter-thread communication of lock protected data |
CN102594884A (zh) * | 2012-02-09 | 2012-07-18 | 成都三零凯天通信实业有限公司 | 基于b/s架构多级数据自动分发与同步的方法与系统 |
CN102722449A (zh) * | 2012-05-24 | 2012-10-10 | 中国科学院计算技术研究所 | 基于SSD的Key-Value型本地存储方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704325A (zh) * | 2016-08-08 | 2018-02-16 | 北京百度网讯科技有限公司 | 用于进程间传输消息的方法和装置 |
CN107704325B (zh) * | 2016-08-08 | 2021-08-27 | 北京百度网讯科技有限公司 | 用于进程间传输消息的方法和装置 |
CN107765991A (zh) * | 2016-08-19 | 2018-03-06 | 北京百度网讯科技有限公司 | 用于传输消息的方法和装置 |
CN107765991B (zh) * | 2016-08-19 | 2019-03-01 | 北京百度网讯科技有限公司 | 用于传输消息的方法和装置 |
US10817439B2 (en) | 2016-08-19 | 2020-10-27 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for transmitting a message |
CN107632594A (zh) * | 2017-11-06 | 2018-01-26 | 苏州科技大学 | 一种基于无线网络的电器集中控制系统和控制方法 |
CN107632594B (zh) * | 2017-11-06 | 2024-02-06 | 苏州科技大学 | 一种基于无线网络的电器集中控制系统和控制方法 |
CN108710531A (zh) * | 2018-04-20 | 2018-10-26 | 深圳市文鼎创数据科技有限公司 | 循环队列的数据写入方法、装置、终端设备和存储介质 |
CN108710531B (zh) * | 2018-04-20 | 2021-06-15 | 深圳市文鼎创数据科技有限公司 | 循环队列的数据写入方法、装置、终端设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103197958B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220309007A1 (en) | Data Write Method, Apparatus, and System | |
US10013165B2 (en) | Remote memory swapping method, apparatus and system | |
EP3230861B1 (en) | Technologies for fast synchronization barriers for many-core processing | |
CN103197958A (zh) | 一种数据传输方法及系统与转发器设备 | |
CN104252405A (zh) | 日志信息的输出方法及装置 | |
KR20190033716A (ko) | 블록체인을 이용한 메시지 히스토리 기반의 보안 키를 이용하는 통신 장치 및 방법 | |
CN105138310A (zh) | 一种并发访问控制方法和系统 | |
US9971643B2 (en) | Processing an input/output operation request | |
US8898342B2 (en) | Methods and structure enhancing zone configuration in a serial attached SCSI environment | |
CN106295381A (zh) | 用于监控对内部存储器的数据访问的装置以及内部存储器 | |
CN103200196A (zh) | 一种用户设备及访问目标间的接入访问方法、系统及装置 | |
CN103369529A (zh) | 身份认证方法、访问点及访问控制器 | |
CN111416825A (zh) | 线程间无锁日志管理方法和系统、终端、存储介质 | |
CN106375103B (zh) | 一种告警数据采集和发送方法 | |
CN106909197B (zh) | 一种虚拟化主机时间管理方法及虚拟化主机系统 | |
CN103164267A (zh) | 无锁消息队列实现方法 | |
CN105404635A (zh) | 字符串匹配的方法、设备和异构计算系统 | |
CN102801686A (zh) | 设备控制方法、主设备、从设备及主从设备组 | |
US9596131B2 (en) | Method for transiting operation mode of routing processor | |
US9917701B2 (en) | Communication device | |
KR101680945B1 (ko) | 조인 연산을 위한 매핑 방법 및 리듀싱 방법,및 그 방법들을 이용한 장치들 | |
US9369278B2 (en) | Method for maintenance or exchange of encryption function in storage system and storage device | |
US20130304943A1 (en) | Method for broadcast processing with reduced redundancy | |
CN105574407A (zh) | 一种共享的处理方法和装置 | |
KR20150081969A (ko) | 공유 메모리 기반 통신 장치 및 그 방법 |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Data transmission method and system and transponder device Effective date of registration: 20170401 Granted publication date: 20160810 Pledgee: Silicon Valley Bank Co., Ltd. Pledgor: TVMining (Beijing) Media Technology Co., Ltd. Registration number: 2017310000019 |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 Termination date: 20210401 |