CN103593247B - 一种数据传递方法、及装置 - Google Patents
一种数据传递方法、及装置 Download PDFInfo
- Publication number
- CN103593247B CN103593247B CN201310576452.XA CN201310576452A CN103593247B CN 103593247 B CN103593247 B CN 103593247B CN 201310576452 A CN201310576452 A CN 201310576452A CN 103593247 B CN103593247 B CN 103593247B
- Authority
- CN
- China
- Prior art keywords
- target process
- source data
- data
- target
- transmission channel
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了一种数据传递方法、及装置,其中方法的实现包括:源进程生成并截获源数据,获取各目标进程的传输通道信息;依据所述传输通道信息确定所述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;将所述源数据发送给所述目标进程;发送源数据给各目标进程所采用的发送方式与确定的各目标进程的传输方式对应。采用由源进程截获源数据,并获取各目标进程的传输通道信息,来确定源数据对应的目标进程,以及发送源数据给各目标进程的传输方式,然后完成源数据的发送,可以达到多个目标进程获取一个源进程的数据的目的,并且该方案不需要文件全部存储完毕,也不需要目标进程采用轮询方式获得最新数据,因此数据传递效率较高。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据传递方法、及装置。
背景技术
进程间数据传递,一般可以采用的方案,可以如下:
数据的提供方在硬盘上建立一个文件,然后往该文件里写数据(可以不关闭文件,但必须刷新缓冲区),数据的接收方以共享方式打开这个文件并读取其中的内容。
该方案,需要数据的提供创建文件,并且需要不停写入文件。数据的接收方只能采取轮询的方式获得最新数据,导致效率低下。对于存在多应用进程作为数据接收方时,问题尤为突出。
例如,摄像头获取视频以后编码软件得到视频,编码软件需要将视频在硬盘上存储为一个文件,视频播放软件需要将文件全部存储完毕以后,才能被其他应用程序读取到。
因此采用以上方案,数据的目的端获取数据的效率较低。
发明内容
本发明实施例提供了一种数据传递方法、及装置,实现多个目标进程获取一个源进程的数据,并提高数据传递效率。
一种数据传递方法,包括:
源进程生成并截获源数据,获取各目标进程的传输通道信息;
依据所述传输通道信息确定所述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;
将所述源数据发送给所述目标进程;发送源数据给各目标进程所采用的发送方式与确定的各目标进程的传输方式对应。
一种数据传递装置,包括:
数据生成单元,用于生成源数据;
数据截取单元,用于截获所述数据生成单元生成的源数据;
信息获取单元,用于获取各目标进程的传输通道信息;
方式目标确定单元,用于依据所述信息获取单元获取的传输通道信息确定所述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;
发送单元,用于将所述源数据发送给所述目标进程;发送源数据给各目标进程所采用的发送方式与所述方式目标确定单元确定的各目标进程的传输方式对应。
从以上技术方案可以看出,本发明实施例具有以下优点:采用由源进程截获源数据,并获取各目标进程的传输通道信息,来确定源数据对应的目标进程,以及发送源数据给各目标进程的传输方式,然后完成源数据的发送,可以达到多个目标进程获取一个源进程的数据的目的,并且该方案不需要文件全部存储完毕,也不需要目标进程采用轮询方式获得最新数据,因此数据传递效率较高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例***结构示意图;
图3为本发明实施例装置结构示意图;
图4为本发明实施例装置结构示意图;
图5为本发明实施例装置结构示意图;
图6为本发明实施例终端结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种数据传递方法,如图1所示,包括:
101:源进程生成并截获源数据,获取各目标进程的传输通道信息;
源进程是提供数据的源,源进程会产生源数据,源数据可以是声音、图像、流数据等,源数据种类多种多样,其并不影响本发明实施例的实现,因此本发明实施例对此不予限定。
上述传输通道信息是用来标识采用何种方式进行传输的信息,其表现形式可以多种多样,除了传输方式以外,还可以通过各种信息来表示需要获取源数据的目标进程以及源进程的信息,基于传输方式的不同传输通道可以采用不同的形式来体现,以下给出了传输通道信息的具体实现举例,如下:
首先,获取的方式可以采用监视线程来实现,具体如下:上述获取各目标进程的传输通道信息包括:采用监视线程获取各目标进程的传输通道信息,并确定目标进程以及目标进程的传输通道信息是否有变更。
另外,传输通道信息的标识可以采用如下方式来进行标识,使源进程容易确定需要获取源数据的目标进程有哪些,具体如下:上述获取各目标进程的传输通道信息包括:获取以目标进程标识和源进程标识的标识对建立的通道标识。
在本发明实施例中,传输方式可以采用共享存储块的方式来实现,共享的存储块可以是共享内存,需要说明的是传输通道还可以是其他***对象,因此传输通道信息也可以是其他,以下举例不应理解为对本发明实施例的唯一限定。采用共享存储块的方式来实现的具体方案如下:上述通道标识指示了源数据存放的目标地址;上述将上述源数据发送给上述目标进程包括:将源数据存放在上述目标地址,供目标进程读取。
在本发明实施例中,传输通道信息可以由目标进程存入,具体方案如下:上述获取各目标进程的传输通道信息包括:上述源进程被目标进程采用钩子注入后,获取由采用钩子注入上述源进程的目标进程存入的传输通道信息。
基于一个特定的应用,本发明实施例可以应用于音乐等音频的播放,基于此本发明实施例提供了如下方案,需要说明的是除了音频播放以外,其他如视频播放器作为源进程也是可以,音频播放器进程作为源进程的方案不应理解为对本发明实施例的唯一限定,具体如下:上述目标进程有两个或两个以上;上述源进程为音频播放器进程。后续实施例中,将给出以音乐播放器为例的更详细举例说明。
102:依据上述传输通道信息确定上述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;
103:将上述源数据发送给上述目标进程;发送源数据给各目标进程所采用的发送方式与确定的各目标进程的传输方式对应。
本发明实施例,采用由源进程截获源数据,并获取各目标进程的传输通道信息,来确定源数据对应的目标进程,以及发送源数据给各目标进程的传输方式,然后完成源数据的发送,可以达到多个目标进程获取一个源进程的数据的目的,并且该方案不需要文件全部存储完毕,也不需要目标进程采用轮询方式获得最新数据,因此数据传递效率较高。另外,由于本发明实施例方案,各目标进程获取源数据的方式是独立的,因此各目标进程获取源数据并不会相互影响。
基于前述使用共享地址块的实现方案,本发明实施例还提供了如何将目标数据存放到通道标识指示的地址中的具体实现方案,具体如下:上述将源数据存放在上述目标地址,供目标进程读取包括:
采用传输线程读取上述通道标识指示的地址,并将源数据写入上述通道标识指示的地址,供目标进程读取。
以下将以声音播放器作为源进程来进行更详细的举例说明,本发明实施例通过Hook(钩子)方式注入播放器进程,挂钩播放进程的播放函数取得声音数据,再通过共享内存将声音数据回传给其他应用程序使用。
钩子(Hook),是视窗操作***(Windows)消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理Windows消息或特定事件。
详细实现方案如下图2所示:
首先介绍个部分示意的含义如下:
应用程序:想要获取声音数据的程序;图2所示为n个应用进程。
播放器进程:声音数据源,被获取声音的目标程序。
传输通道ID(Identity,标识):可以以应用程序进程ID和播放器进程ID为键值对建立的的***全局唯一的64位的ID,高位为应用程序32位的进程ID,低位为播放器32位的进程ID,代表着哪个应用程序希望获得哪个播放器的声音。
传输通道分配表:这个表里面存储着传输通道ID。
传输通道:这个是以传输通道ID为标识建立的***全局唯一的共享内存块,用来传输声音数据,播放器写入数据,应用程序从中读出数据。
传输通道表:该传输通道表在播放器进程中,用来存储传输通道地址。
声音数据缓存buf:用来缓存从播放器进程拦截的声音数据。
分配监视线程:该线程监视传输通道分配表,当分配表有变更时,该线程会扫描整个表,检查每一个传输通道ID,查看是否有应用程序想获得本播放器进程的声音数据,如果有,则将该传输通道ID对应的传输通道地址更新到传输通道表中。
声音传输线程:该线程读取传输通道表中的传输通道地址,然后将声音数据一一写入对应传输通道。
应用程序获得播放器声音数据的流程,也请参阅图2所示,具体如下:
步骤1、应用程序首先注入目标播放进程,然后挂钩播放进程的播放函数,分配缓存(buf)存储截获的声音数据,创建分配监视线程和声音传输线程;
例如:Qtalk(一款支持多人语音交流的团队语音通信工具)程序注入播放器获取声音。
步骤2、应用程序以自己ID和播放器ID为标识生成传输通道ID,并以该传输通道ID为标识建立传输通道;
步骤3、应用程序将传输通道ID更新到传输通道分配表中,并通知播放器进程进行更新;在图2所示中,应用进程还可以修改通道分配表中自身的传输通道ID。
步骤4、播放器进程的分配监视线程扫描传输通道分配表监视传输通道分配表的分配变更,发现应用程序想获取自己的声音,于是将传输通道的地址存到传输通道表中;如果有变更的情况发生,则需要更新传输通道表;
步骤5、播放器进程的声音传输线程从声音数据缓存buf中取出截获的声音数据,然后从传输通道表中取出传输通道地址,然后写入数据到对应的传输通道;
步骤6、应用程序此后从各自对应的传输通道中读取声音数据。
如果其他应用程序也想获取该播放器的声音,重复步骤(2)到(6)即可;如果应用程序不想获得声音数据了,就删除传输通道分配表中的传输通道ID,播放器的分配监视线程检测到这一动作就删除本地传输通道表中对应的传输通道地址,同时关闭对应的传输通道。
该技术方案支持多个应用程序同时获得目标播放器的声音数据,从而使用户能将本地播放的音乐同时分享到多个语音聊天室,此外各个应用程序背景音乐的开关都是相互独立互不影响的,使得Qtalk背景音乐功能简单易用且强大,给用户带来了更好的体验。
本发明实施例还提供了一种数据传递装置,如图3所示,包括:
数据生成单元301,用于生成源数据;
源进程是提供数据的源,源进程会产生源数据,源数据可以是声音、图像、流数据等,源数据种类多种多样,其并不影响本发明实施例的实现,因此本发明实施例对此不予限定。
数据截取单元302,用于截获上述数据生成单元301生成的源数据;
信息获取单元303,用于获取各目标进程的传输通道信息;
方式目标确定单元304,用于依据上述信息获取单元303获取的传输通道信息确定上述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;
发送单元305,用于将上述源数据发送给上述目标进程;发送源数据给各目标进程所采用的发送方式与上述方式目标确定单元304确定的各目标进程的传输方式对应。
本发明实施例,采用由源进程截获源数据,并获取各目标进程的传输通道信息,来确定源数据对应的目标进程,以及发送源数据给各目标进程的传输方式,然后完成源数据的发送,可以达到多个目标进程获取一个源进程的数据的目的,并且该方案不需要文件全部存储完毕,也不需要目标进程采用轮询方式获得最新数据,因此数据传递效率较高。另外,由于本发明实施例方案,各目标进程获取源数据的方式是独立的,因此各目标进程获取源数据并不会相互影响。
上述传输通道信息是用来标识采用何种方式进行传输的信息,其表现形式可以多种多样,除了传输方式以外,还可以通过各种信息来表示需要获取源数据的目标进程以及源进程的信息,基于传输方式的不同传输通道可以采用不同的形式来体现,以下给出了传输通道信息的具体实现举例,如下:
首先,获取的方式可以采用监视线程来实现,具体如下:可选地,上述信息获取单元303,用于采用监视线程获取各目标进程的传输通道信息,并确定目标进程以及目标进程的传输通道信息是否有变更。
另外,传输通道信息的标识可以采用如下方式来进行标识,使源进程容易确定需要获取源数据的目标进程有哪些,具体如下:可选地,上述信息获取单元303,用于获取以目标进程标识和源进程标识的标识对建立的通道标识。
在本发明实施例中,传输方式可以采用共享存储块的方式来实现,共享的存储块可以是共享内存,需要说明的是传输通道还可以是其他***对象,因此传输通道信息也可以是其他,以下举例不应理解为对本发明实施例的唯一限定。采用共享存储块的方式来实现的具体方案如下:可选地,上述信息获取单元303,用于通道标识指示了源数据存放的目标地址;
上述发送单元305,用于将源数据存放在上述目标地址,供目标进程读取。
基于前述使用共享地址块的实现方案,本发明实施例还提供了如何将目标数据存放到通道标识指示的地址中的具体实现方案,具体如下:可选地,如图4所示,上述发送单元305包括:
地址读取单元401,用于采用传输线程读取上述通道标识指示的地址;
数据写单元402,用于将源数据写入上述地址读取单元401读取到的上述通道标识指示的地址,供目标进程读取。
在本发明实施例中,传输通道信息可以由目标进程存入,具体方案如下:可选地,上述信息获取单元303,用于在源进程被目标进程采用钩子注入后,获取由采用钩子注入上述源进程的目标进程存入的传输通道信息。
本发明实施例还提供了另一种数据传递装置,如图5所示,包括:
接收器501、发射器502、处理器503以及存储器504;
其中处理器503,用于生成并截获源数据,获取各目标进程的传输通道信息;依据上述传输通道信息确定上述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;将上述源数据发送给上述目标进程;发送源数据给各目标进程所采用的发送方式与确定的各目标进程的传输方式对应。
源进程是提供数据的源,源进程会产生源数据,源数据可以是声音、图像、流数据等,源数据种类多种多样,其并不影响本发明实施例的实现,因此本发明实施例对此不予限定。
本发明实施例,采用由源进程截获源数据,并获取各目标进程的传输通道信息,来确定源数据对应的目标进程,以及发送源数据给各目标进程的传输方式,然后完成源数据的发送,可以达到多个目标进程获取一个源进程的数据的目的,并且该方案不需要文件全部存储完毕,也不需要目标进程采用轮询方式获得最新数据,因此数据传递效率较高。另外,由于本发明实施例方案,各目标进程获取源数据的方式是独立的,因此各目标进程获取源数据并不会相互影响。
上述传输通道信息是用来标识采用何种方式进行传输的信息,其表现形式可以多种多样,除了传输方式以外,还可以通过各种信息来表示需要获取源数据的目标进程以及源进程的信息,基于传输方式的不同传输通道可以采用不同的形式来体现,以下给出了传输通道信息的具体实现举例,如下:
首先,获取的方式可以采用监视线程来实现,具体如下:可选地,上述处理器503,用于获取各目标进程的传输通道信息包括:用于采用监视线程获取各目标进程的传输通道信息,并确定目标进程以及目标进程的传输通道信息是否有变更。
另外,传输通道信息的标识可以采用如下方式来进行标识,使源进程容易确定需要获取源数据的目标进程有哪些,具体如下:上述处理器503,用于获取各目标进程的传输通道信息包括:用于获取以目标进程标识和源进程标识的标识对建立的通道标识。
在本发明实施例中,传输方式可以采用共享存储块的方式来实现,共享的存储块可以是共享内存,需要说明的是传输通道还可以是其他***对象,因此传输通道信息也可以是其他,以下举例不应理解为对本发明实施例的唯一限定。采用共享存储块的方式来实现的具体方案如下:可选地,上述通道标识指示了源数据存放的目标地址;上述处理器503,用于将上述源数据发送给上述目标进程包括:用于将源数据存放在上述目标地址,供目标进程读取。
基于前述使用共享地址块的实现方案,本发明实施例还提供了如何将目标数据存放到通道标识指示的地址中的具体实现方案,具体如下:上述处理器503,用于将源数据存放在上述目标地址,供目标进程读取包括:用于采用传输线程读取上述通道标识指示的地址,并将源数据写入上述通道标识指示的地址,供目标进程读取。
在本发明实施例中,传输通道信息可以由目标进程存入,具体方案如下:上述处理器503,用于获取各目标进程的传输通道信息包括:用于在源进程被目标进程采用钩子注入后,获取由采用钩子注入上述源进程的目标进程存入的传输通道信息。
本发明实施例还提供了一种设备,用于区分软件类型,该设备可以为终端,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal DigitalAssistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(wireless fidelity,WiFi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理***与处理器680逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器680还具有以下功能:
生成并截获源数据,获取各目标进程的传输通道信息;依据上述传输通道信息确定上述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;将上述源数据发送给上述目标进程;发送源数据给各目标进程所采用的发送方式与确定的各目标进程的传输方式对应。
源进程是提供数据的源,源进程会产生源数据,源数据可以是声音、图像、流数据等,源数据种类多种多样,其并不影响本发明实施例的实现,因此本发明实施例对此不予限定。
本发明实施例,采用由源进程截获源数据,并获取各目标进程的传输通道信息,来确定源数据对应的目标进程,以及发送源数据给各目标进程的传输方式,然后完成源数据的发送,可以达到多个目标进程获取一个源进程的数据的目的,并且该方案不需要文件全部存储完毕,也不需要目标进程采用轮询方式获得最新数据,因此数据传递效率较高。另外,由于本发明实施例方案,各目标进程获取源数据的方式是独立的,因此各目标进程获取源数据并不会相互影响。
上述传输通道信息是用来标识采用何种方式进行传输的信息,其表现形式可以多种多样,除了传输方式以外,还可以通过各种信息来表示需要获取源数据的目标进程以及源进程的信息,基于传输方式的不同传输通道可以采用不同的形式来体现,以下给出了传输通道信息的具体实现举例,如下:
首先,获取的方式可以采用监视线程来实现,具体如下:可选地,上述处理器680,用于获取各目标进程的传输通道信息包括:用于采用监视线程获取各目标进程的传输通道信息,并确定目标进程以及目标进程的传输通道信息是否有变更。
另外,传输通道信息的标识可以采用如下方式来进行标识,使源进程容易确定需要获取源数据的目标进程有哪些,具体如下:上述处理器680,用于获取各目标进程的传输通道信息包括:用于获取以目标进程标识和源进程标识的标识对建立的通道标识。
在本发明实施例中,传输方式可以采用共享存储块的方式来实现,共享的存储块可以是共享内存,需要说明的是传输通道还可以是其他***对象,因此传输通道信息也可以是其他,以下举例不应理解为对本发明实施例的唯一限定。采用共享存储块的方式来实现的具体方案如下:可选地,上述通道标识指示了源数据存放的目标地址;上述处理器680,用于将上述源数据发送给上述目标进程包括:用于将源数据存放在上述目标地址,供目标进程读取。
基于前述使用共享地址块的实现方案,本发明实施例还提供了如何将目标数据存放到通道标识指示的地址中的具体实现方案,具体如下:上述处理器680,用于将源数据存放在上述目标地址,供目标进程读取包括:用于采用传输线程读取上述通道标识指示的地址,并将源数据写入上述通道标识指示的地址,供目标进程读取。
在本发明实施例中,传输通道信息可以由目标进程存入,具体方案如下:上述处理器680,用于获取各目标进程的传输通道信息包括:用于在源进程被目标进程采用钩子注入后,获取由采用钩子注入上述源进程的目标进程存入的传输通道信息。
值得注意的是,上述数据传递装置实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1.一种数据传递方法,其特征在于,包括:
源进程生成并截获源数据,获取各目标进程的传输通道信息;
依据所述传输通道信息确定所述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;
将所述源数据发送给所述目标进程;发送源数据给各目标进程所采用的发送方式与确定的各目标进程的传输方式对应;
所述获取各目标进程的传输通道信息包括:
采用监视线程获取各目标进程的传输通道信息,并确定目标进程以及目标进程的传输通道信息是否有变更;
或,所述源进程被目标进程采用钩子注入后,获取由采用钩子注入所述源进程的目标进程存入的传输通道信息。
2.根据权利要求1所述方法,其特征在于,所述获取各目标进程的传输通道信息包括:
获取以目标进程标识和源进程标识的标识对建立的通道标识。
3.根据权利要求2所述方法,其特征在于,所述通道标识指示了源数据存放的目标地址;所述将所述源数据发送给所述目标进程包括:
将源数据存放在所述目标地址,供目标进程读取。
4.根据权利要求3所述方法,其特征在于,所述将源数据存放在所述目标地址,供目标进程读取包括:
采用传输线程读取所述通道标识指示的地址,并将源数据写入所述通道标识指示的地址,供目标进程读取。
5.根据权利要求1至4任一项所述方法,其特征在于,所述目标进程有两个或两个以上;所述源进程为音频播放器进程。
6.一种数据传递装置,其特征在于,包括:
数据生成单元,用于生成源数据;
数据截取单元,用于截获所述数据生成单元生成的源数据;
信息获取单元,用于获取各目标进程的传输通道信息;
方式目标确定单元,用于依据所述信息获取单元获取的传输通道信息确定所述源数据对应的目标进程,以及发送源数据给各目标进程的传输方式;
发送单元,用于将所述源数据发送给所述目标进程;发送源数据给各目标进程所采用的发送方式与所述方式目标确定单元确定的各目标进程的传输方式对应;
所述信息获取单元,用于采用监视线程获取各目标进程的传输通道信息,并确定目标进程以及目标进程的传输通道信息是否有变更;或,用于在源进程被目标进程采用钩子注入后,获取由采用钩子注入所述源进程的目标进程存入的传输通道信息。
7.根据权利要求6所述数据传递装置,其特征在于,
所述信息获取单元,用于获取以目标进程标识和源进程标识的标识对建立的通道标识。
8.根据权利要求7所述数据传递装置,其特征在于,
所述信息获取单元,用于通道标识指示了源数据存放的目标地址;
所述发送单元,用于将源数据存放在所述目标地址,供目标进程读取。
9.根据权利要求8所述数据传递装置,其特征在于,所述发送单元包括:
地址读取单元,用于采用传输线程读取所述通道标识指示的地址;
数据写单元,用于将源数据写入所述地址读取单元读取到的所述通道标识指示的地址,供目标进程读取。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310576452.XA CN103593247B (zh) | 2013-11-18 | 2013-11-18 | 一种数据传递方法、及装置 |
PCT/CN2014/090963 WO2015070769A1 (en) | 2013-11-18 | 2014-11-13 | Data transfer method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310576452.XA CN103593247B (zh) | 2013-11-18 | 2013-11-18 | 一种数据传递方法、及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103593247A CN103593247A (zh) | 2014-02-19 |
CN103593247B true CN103593247B (zh) | 2017-02-08 |
Family
ID=50083402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310576452.XA Active CN103593247B (zh) | 2013-11-18 | 2013-11-18 | 一种数据传递方法、及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103593247B (zh) |
WO (1) | WO2015070769A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593247B (zh) * | 2013-11-18 | 2017-02-08 | 腾讯科技(成都)有限公司 | 一种数据传递方法、及装置 |
CN104410687B (zh) * | 2014-11-26 | 2018-01-19 | 上海爱数信息技术股份有限公司 | 一种基于管道的多组进程间数据传递方法 |
CN105468360B (zh) * | 2015-11-17 | 2018-09-21 | 南京邮电大学 | 一种面向第三方音频播放器的数据截取方法 |
CN111045700B (zh) * | 2018-10-15 | 2023-05-05 | 阿里巴巴集团控股有限公司 | 数据更新方法、装置、***、存储介质及电子设备 |
CN111290744B (zh) * | 2020-01-22 | 2023-07-21 | 北京百度网讯科技有限公司 | 流式计算作业处理方法、流式计算***及电子设备 |
CN111511045B (zh) * | 2020-04-10 | 2023-06-02 | 玳能科技(杭州)有限公司 | 移动终端与电脑的交互方法、装置、电子设备及存储介质 |
CN115794443B (zh) * | 2023-01-29 | 2023-05-23 | 北京万里红科技有限公司 | 基于共享内存的多进程间通信的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1892654A (zh) * | 2005-06-08 | 2007-01-10 | 罗技欧洲公司 | 透明地处理多媒体数据的***与方法 |
CN102819455A (zh) * | 2012-07-31 | 2012-12-12 | 深圳市共进电子股份有限公司 | 一种在应用层对进程进行管理的方法和管理*** |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8606950B2 (en) * | 2005-06-08 | 2013-12-10 | Logitech Europe S.A. | System and method for transparently processing multimedia data |
CN100421469C (zh) * | 2005-12-23 | 2008-09-24 | 华为技术有限公司 | 实现实时视频信息共享的***及方法 |
US7613597B2 (en) * | 2006-01-20 | 2009-11-03 | International Business Machines Corporation | Non-intrusive method for simulation or replay of external events related to an application process, and a system implementing said method |
US8171483B2 (en) * | 2007-10-20 | 2012-05-01 | Citrix Systems, Inc. | Method and system for communicating between isolation environments |
CN101296130B (zh) * | 2008-05-30 | 2011-04-06 | 北京同步科技有限公司 | 一种实现多进程共享端口接收网络通知的***及其方法 |
CN103150220B (zh) * | 2011-12-07 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 进程间的通信方法和通信*** |
CN103593247B (zh) * | 2013-11-18 | 2017-02-08 | 腾讯科技(成都)有限公司 | 一种数据传递方法、及装置 |
-
2013
- 2013-11-18 CN CN201310576452.XA patent/CN103593247B/zh active Active
-
2014
- 2014-11-13 WO PCT/CN2014/090963 patent/WO2015070769A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1892654A (zh) * | 2005-06-08 | 2007-01-10 | 罗技欧洲公司 | 透明地处理多媒体数据的***与方法 |
CN102819455A (zh) * | 2012-07-31 | 2012-12-12 | 深圳市共进电子股份有限公司 | 一种在应用层对进程进行管理的方法和管理*** |
Also Published As
Publication number | Publication date |
---|---|
WO2015070769A1 (en) | 2015-05-21 |
CN103593247A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103593247B (zh) | 一种数据传递方法、及装置 | |
CN103294515B (zh) | 一种获取应用程序的方法、装置和*** | |
CN106162316A (zh) | 一种视频流的数据处理方法、装置和*** | |
CN106791892A (zh) | 一种轮麦直播的方法、装置和*** | |
CN103475914B (zh) | 视频播放方法、装置、终端设备和服务器 | |
CN103473092B (zh) | 一种下载应用的处理方法、装置及终端设备 | |
CN103634717B (zh) | 一种利用耳机控制的方法、装置及终端设备 | |
CN106331826A (zh) | 一种设置直播模板和视频模式的方法、装置和*** | |
CN103699309B (zh) | 一种同步视频的录制方法、装置及移动终端 | |
CN106126174A (zh) | 一种场景音效的控制方法、及电子设备 | |
CN106210755A (zh) | 一种播放直播视频的方法、装置和*** | |
CN106506321A (zh) | 一种群消息处理方法及终端设备 | |
CN106254910A (zh) | 一种记录图像的方法和装置 | |
CN106791955A (zh) | 一种确定直播时长的方法和*** | |
CN105959481A (zh) | 一种场景音效的控制方法、及电子设备 | |
CN106231433A (zh) | 一种播放网络视频的方法、装置和*** | |
CN106101764A (zh) | 一种显示视频数据的方法、装置和*** | |
CN105959482A (zh) | 一种场景音效的控制方法、及电子设备 | |
CN106254924A (zh) | 一种多媒体数据的播放方法、***及相关设备 | |
CN106303605A (zh) | 一种发送通知消息的方法、装置和*** | |
CN104243394A (zh) | 多媒体文件的播放方法及装置 | |
CN104240710B (zh) | 一种信息传输的方法、***及终端设备 | |
CN103227832B (zh) | 共享资源处理方法及装置 | |
CN106953899A (zh) | 多媒体数据共享方法及装置 | |
CN106878153A (zh) | 一种消息共享方法及装置和移动终端、服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |