CN113918359A - 数据复制粘贴系统、方法和装置 - Google Patents
数据复制粘贴系统、方法和装置 Download PDFInfo
- Publication number
- CN113918359A CN113918359A CN202111155856.2A CN202111155856A CN113918359A CN 113918359 A CN113918359 A CN 113918359A CN 202111155856 A CN202111155856 A CN 202111155856A CN 113918359 A CN113918359 A CN 113918359A
- Authority
- CN
- China
- Prior art keywords
- client
- data
- slave
- clipboard
- agent module
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000010076 replication Effects 0.000 claims abstract description 36
- 238000004891 communication Methods 0.000 claims description 10
- 230000002457 bidirectional effect Effects 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
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/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
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)
Abstract
本申请公开了一种数据复制粘贴系统、方法和装置。其中,该系统包括:主客户端和至少一个从客户端,主客户端向服务器发起数据复制请求或数据粘贴请求,并粘贴目标数据,从客户端向服务器发起数据粘贴请求,并粘贴目标数据;服务器包括系统剪切板,与主客户端对应的主剪切板代理模块和与从客户端对应的从剪切板代理模块,系统剪切板依据数据复制请求确定目标数据并发送至主剪切板代理模块;主剪切板代理模块将目标数据发送至主客户端和从剪切板代理模块;从剪切板代理模块将目标数据发送至从客户端。本申请解决了相关技术中客户端与服务器系统剪切板通道唯一,主从客户端仅能顺序从系统剪切板获取数据而无法并行获取数据的技术问题。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据复制粘贴系统、方法和装置。
背景技术
在远程桌面系统中,通常包括服务器和多个客户端,其中,服务器运行有服务模块(server),用于监听多个客户端的连接,负责画面采集回传与数据互传;多个客户端均运行有客户模块(client),用于从服务器获取画面并显示。客户端通常又分为主客户端和从客户端两类,主客户端对服务器桌面拥有反向控制权,可类比为老师,而从客户端仅能显示服务器画面,没有反向控制权,可类比为学生。
在远程桌面教学系统中,基于剪切板重定向的数据复制与粘贴,是其不可或缺的功能之一。客户端依赖服务器中的系统剪切板完成对数据文件的复制粘贴,其中,主客户端对系统剪切板具有读、写控制权,而从客户端对系统剪切板仅有读控制权。当主客户端发送复制请求后,主客户端及从客户端均会收到服务器的复制完成信息,然后主客户端和从客户端向系统剪切板请求剪切板数据,从而在本地完成对数据的粘贴。
在上述方案中,当客户端执行粘贴操作时,Client向Server请求剪切板数据,由于Server与系统剪切板的单连接性,其仅支持客户端与系统剪切板建立唯一连接通道,客户端仅能顺序从系统剪切板获取数据,而无法并行获取剪切板数据。同时,当从客户端粘贴数据时,其与系统剪切板建立独立连接通道,此时主客户端若要执行复制动作,由于无法与系统剪切板建立连接,复制动作就无法执行,即主客户端失去了对系统剪切板的绝对控制权,如果主客户端强行获取系统剪切板的控制权,就会导致从客户端的粘贴数据遭到破坏而丢失。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据复制粘贴系统、方法和装置,以至少解决相关技术中客户端与服务器系统剪切板通道唯一,主从客户端仅能顺序从系统剪切板获取数据而无法并行获取数据的技术问题。
根据本申请实施例的一个方面,提供了一种数据复制粘贴系统,包括:客户端,包括主客户端和至少一个从客户端,其中,所述主客户端用于向服务器发起数据复制请求或数据粘贴请求,并完成对目标数据的粘贴操作;所述至少一个从客户端用于向所述服务器发起数据粘贴请求,并完成对所述目标数据的粘贴操作;所述服务器,包括系统剪切板,与所述主客户端对应的主剪切板代理模块和与所述至少一个从客户端对应的至少一个从剪切板代理模块,其中,所述系统剪切板用于依据所述数据复制请求确定所述目标数据,并将所述目标数据发送至所述主剪切板代理模块;所述主剪切板代理模块用于将所述目标数据发送至所述主客户端和所述至少一个从剪切板代理模块;所述至少一个从剪切板代理模块用于将所述目标数据发送至所述至少一个从客户端。
可选地,所述主客户端和所述至少一个从客户端中均包括:客户模块,所述客户模块用于向所述服务器发起所述数据复制请求或所述数据粘贴请求,并完成对所述目标数据的粘贴操作。
可选地,所述服务器中还包括:服务模块,所述服务模块用于监听所述主客户端与所述服务器之间及所述至少一个从客户端与所述服务器之间的连接;其中,在所述主客户端连接所述服务器时,所述服务模块用于启动所述主剪切板代理模块,与所述主剪切板代理模块建立连接,并建立所述系统剪切板和所述主剪切板代理模块之间的连接;在所述至少一个从客户端连接所述服务器时,所述服务模块用于启动所述至少一个从剪切板代理模块,与所述至少一个从剪切板代理模块建立连接,并建立所述主剪切板代理模块与所述至少一个从剪切板代理模块之间的连接。
可选地,所述系统剪切板与所述主剪切板代理模块之间建立双向数据连接;所述主剪切板代理模块与所述至少一个从剪切板代理模块之间建立从所述主剪切板代理模块至所述至少一个从剪切板代理模块的单向数据连接;所述主剪切板代理模块与所述服务模块之间,所述至少一个从剪切板代理模块与所述服务模块之间均建立双向数据连接。
可选地,所述服务模块与所述主剪切板代理模块之间,所述服务模块与所述至少一个从剪切板代理模块之间,所述主剪切板代理模块与所述至少一个从剪切板代理模块之间均采用进程间通信。
可选地,所述至少一个从剪切板代理模块还用于向所述至少一个从客户端通知数据复制完成信息,响应于所述至少一个从客户端发送的数据粘贴请求,将所述目标数据发送至所述至少一个从客户端。
可选地,所述主客户端还用于设置针对所述至少一个从客户端的重定向黑名单;所述主剪切板代理模块还用于维护所述重定向黑名单,并检测目标从客户端是否在所述重定向黑名单中;当所述目标从客户端不在所述重定向黑名单中时,所述主剪切板代理模块将所述目标数据发送至所述目标从客户端对应的目标从剪切板代理模块;当所述目标从客户端在所述重定向黑名单中时,所述主剪切板代理模块不再将所述目标数据发送至所述目标从剪切板代理模块;其中,所述目标从客户端为所述至少一个从客户端中的任一从客户端。
可选地,所述至少一个从剪切板代理模块还用于将多个所述数据复制请求对应的多组目标数据传送至云端进行存储,得到历史复制数据;所述至少一个从客户端还用于从所述历史复制数据中选择待粘贴数据,并完成对所述待粘贴数据的粘贴操作。
根据本申请实施例的另一方面,还提供了一种数据复制粘贴方法,包括:服务器响应于主客户端的数据复制请求,确定目标数据,其中,所述服务器上运行有系统剪切板、与所述主客户端对应的主剪切板代理模块和与从客户端对应的从剪切板代理模块;所述服务器通过所述系统剪切板将所述目标数据发送至所述主剪切板代理模块,并通过所述主剪切板代理模块将所述目标数据发送至所述从剪切板代理模块;所述服务器响应于所述主客户端的数据粘贴请求,通过所述主剪切板代理模块将所述目标数据发送至所述主客户端,由所述主客户端对所述目标数据进行粘贴;所述服务器响应于所述从客户端的数据粘贴请求,通过所述从剪切板代理模块将所述目标数据发送至所述从客户端,由所述从客户端对所述目标数据进行粘贴。
根据本申请实施例的另一方面,还提供了一种数据复制粘贴装置,包括:复制模块,用于响应主客户端的数据复制请求,确定目标数据;发送模块,用于通过系统剪切板将所述目标数据发送至与所述主客户端对应的主剪切板代理模块,并通过所述主剪切板代理模块将所述目标数据发送至与从客户端对应的从剪切板代理模块;第一粘贴模块,用于响应所述主客户端的数据粘贴请求,通过所述主剪切板代理模块将所述目标数据发送至所述主客户端,由所述主客户端对所述目标数据进行粘贴;第二粘贴模块,用于响应所述从客户端的数据粘贴请求,通过所述从剪切板代理模块将所述目标数据发送至所述从客户端,由所述从客户端对所述目标数据进行粘贴。
根据本申请实施例的另一方面,还提供了一种非易失性存储介质,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行上述的数据复制粘贴方法。
根据本申请实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的数据复制粘贴方法。
在本申请实施例中,通过在服务器中建立与各个客户端对应的独立的剪切板代理模块,各剪切板代理模块通过服务模块与客户端建立连接,可以实现系统剪切板数据的并行传输,从而解决了相关技术中客户端与服务器系统剪切板通道唯一,主从客户端仅能顺序从系统剪切板获取数据而无法并行获取数据技术问题;其中,仅由与主客户端对应的主剪切板代理模块与系统剪切板建立连接,然后建立主剪切板代理模块到与各个从客户端对应的各个从剪切板代理模块的单向数据连接通道,系统剪切板数据由主剪切板代理模块转发到各个从剪切板代理模块,实现了主客户端对系统剪切板的独立控制权。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据相关技术的一种数据复制粘贴系统的结构示意图;
图2是根据本申请实施例的一种数据复制粘贴系统的结构示意图;
图3是根据本申请实施例的一种双向数据连接通信的示意图;
图4是根据本申请实施例的一种共享数据区数据格式的示意图;
图5是根据本申请实施例的一种单向数据连接通信的示意图;
图6是根据本申请实施例的一种数据复制粘贴方法的流程示意图;
图7是根据本申请实施例的一种数据复制粘贴装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
在相关技术中,常见的数据复制粘贴系统的结构如图1所示,其包括服务器、主客户端和多个从客户端,服务器中运行有系统剪切板和服务模块,客户端均运行有客户模块。其中,客户端依赖系统剪切板完成对数据文件的复制粘贴,主客户端对系统剪切板具有读、写控制权,而从客户端对系统剪切板仅有读控制权。当主客户端执行复制操作后,主客户端及从客户端均会收到服务器的复制动作消息,然后主客户端和从客户端向系统剪切板请求剪切板数据,从而在本地完成对数据的粘贴。
其中,当客户端执行粘贴操作时,客户模块向服务模块请求剪切板数据,由于服务模块与系统剪切板的单连接性,其仅支持客户端与系统剪切板建立唯一连接通道,导致客户端仅能顺序从系统剪切板获取数据,而无法并行获取剪切板数据。同时,当从客户端粘贴数据时,其与系统剪切板建立独立连接通道,此时主客户端若要执行复制动作,由于无法与系统剪切板建立连接,复制动作就无法执行,即主客户端失去了对系统剪切板的绝对控制权,如果主客户端强行获取系统剪切板的控制权,就会导致从客户端的粘贴数据遭到破坏而丢失。
为解决上述问题,本申请实施例提出一种新的数据复制粘贴方案,通过在服务器中建立与各个客户端对应的独立的剪切板代理模块,各剪切板代理模块通过服务模块与客户端建立连接,就可以实现系统剪切板数据的并行传输;其中,仅将与主客户端对应的主剪切板代理模块与系统剪切板建立连接,然后建立主剪切板代理模块到与各个从客户端对应的各个从剪切板代理模块的单向数据连接通道,将系统剪切板数据由主剪切板代理模块转发到各个从剪切板代理模块,就可以实现主客户端对系统剪切板的独立控制权。
具体地,本申请实施例一种可选的数据复制粘贴系统的结构示意图如图2所示,该系统至少包括客户端和服务器,其中:
客户端,包括主客户端和至少一个从客户端,主客户端用于向服务器发起数据复制请求或数据粘贴请求,并完成对目标数据的粘贴操作;至少一个从客户端用于向服务器发起数据粘贴请求,并完成对目标数据的粘贴操作。
其中,客户端可以是用户的个人电脑、平板、手机等移动终端,也可以是零终端,无论是主客户端还是至少一个从客户端,其中均包括客户模块,该客户模块与服务器中的服务模块连接,用于从服务模块获取服务器画面进行显示;客户模块还用于响应主客户端或从客户端中的用户操作,向服务器发起数据复制请求或数据粘贴请求,并完成对目标数据的粘贴操作。
服务器,包括系统剪切板,与主客户端对应的主剪切板代理模块和与至少一个从客户端对应的至少一个从剪切板代理模块,其中,系统剪切板用于依据数据复制请求确定目标数据,并将目标数据发送至主剪切板代理模块;主剪切板代理模块用于将目标数据发送至主客户端和至少一个从剪切板代理模块;至少一个从剪切板代理模块用于将目标数据发送至至少一个从客户端。
其中,服务器可以是物理机,也可以是高性能虚拟机,其可以与多个客户端连接,并满足大型软件如教学软件的运行。服务器中还包括服务模块,该服务模块用于监听多个客户端的连接,采集服务器画面回传给多个客户端,并负责与多个客户端之间的数据互传。
在本申请一些可选的实施例中,剪切板代理模块虽然常驻于服务器中,但考虑到系统资源的占用问题,其并非时时刻刻都在运行,因此,可以通过服务模块监听主客户端与服务器之间及至少一个从客户端与服务器之间的连接;其中,在主客户端连接服务器时,服务模块启动主剪切板代理模块,与主剪切板代理模块建立连接,并建立系统剪切板和主剪切板代理模块之间的连接;在至少一个从客户端连接服务器时,服务模块启动至少一个从剪切板代理模块,与至少一个从剪切板代理模块建立连接,并建立主剪切板代理模块与至少一个从剪切板代理模块之间的连接。可选地,在主客户端或是至少一个从客户端与服务器断开连接时,服务模块停止运行与之对应的剪切板代理模块。
具体地,本申请提供了一种可选的剪切板代理模块启动与连接方案,步骤如下:
1、服务模块监听客户端与服务器的连接;
2、主客户端连接服务器;
3、服务模块启动与主客户端对应的主剪切板代理模块;
4、主剪切板代理模块与服务模块建立连接;
5、主剪切板代理模块与系统剪切板建立连接;
6、从客户端1连接服务器;
7、服务模块启动与从客户端1对应的从剪切板代理模块1;
8、从剪切板代理模块1与主剪切板代理模块建立连接。
在本申请一些可选的实施例中,在上述建立连接的过程中,系统剪切板与主剪切板代理模块之间建立双向数据连接;主剪切板代理模块与至少一个从剪切板代理模块之间建立从主剪切板代理模块至至少一个从剪切板代理模块的单向数据连接;主剪切板代理模块与服务模块之间,至少一个从剪切板代理模块与服务模块之间均建立双向数据连接。
其中,服务模块与主剪切板代理模块之间,服务模块与至少一个从剪切板代理模块之间,主剪切板代理模块与至少一个从剪切板代理模块之间均采用IPC(Inter-ProcessCommunication,进程间通信)进行信息及数据传输。
具体地,以剪切板代理模块(主剪切板代理模块或从剪切板代理模块)与服务模块之间的数据交互为例,双向数据连接通信的过程如图3所示,其中,剪切板代理模块与服务模块之间具有两个IPC通道,分别通过两个共享数据区进行数据交互。其中,IPC通道1负责发送服务模块到剪切板代理模块的信号,该信号为两种:(1)服务模块已将数据写入共享数据区1,请剪切板代理模块择时从共享数据区1读取数据;(2)服务模块已从共享数据区2读取数据,请剪切板代理模块择时继续写入数据到共享数据区2。同理,IPC通道2负责发送剪切板代理模块到服务模块的信号,该信号也为两种:(1)剪切板代理模块已将数据写入共享数据区2,请服务模块择时从共享数据区2读取数据;(2)剪切板代理模块已从共享数据区1读取数据,请服务模块择时继续写入数据到共享数据区1。
可选地,共享数据区的数据格式如图4所示,其中包括:数据块类型、数据块长度、用户ID、校验和以及数据块内容,具体地:
数据块类型:通常为16bit无符号整数,用来表示数据块中内容字段的信息类型,该参数的取值范围为0-254;数据块类型字段的编码通常分配如下:
数据块类型编码 | 含义 |
0 | 净荷数据(DATA) |
1 | 启动(INIT) |
2 | 启动证实(INIT ACK) |
3 | 关闭(SHUTDOWN) |
4 | 关闭证实(SHUTDOWN ACK) |
5 | 状态(STATUS ECHO) |
6 | 状态证实(STATUS ACK) |
数据块长度:通常为16bit无符号整数,用来表示包括数据块类型字段、数据块长度字段、用户ID字段、校验和字段和数据块内容字段在内的字节数;
用户ID:用来表示该数据是属于哪个连接用户的数据;
校验和:通常为16bit无符号整数,用来校验目的地一组数据项的和;
数据块内容:该字段长度可变,其中包括在该数据块中传送的真正的信息,其使用和格式取决于数据块类型。
以主剪切板代理模块和从剪切板代理模块之间的数据交互为例,单向数据连接通信的过程如图5所示,其中,主剪切板代理模块与每个从剪切板代理模块之间具有一个IPC通道,二者之间通过一个共享数据区进行单向数据传输。例如,IPC通道1负责发送主剪切板代理模块到从剪切板代理模块1的信号,该信号为:主剪切板代理模块已将数据写入共享数据区1,请从剪切板代理模块1择时从共享数据区1读取数据。IPC通道2负责发送主剪切板代理模块到从剪切板代理模块2的信号,该信号为:主剪切板代理模块已将数据写入共享数据区2,请从剪切板代理模块2择时从共享数据区2读取数据。
在本申请一些可选的实施例中,至少一个从剪切板代理模块还用于向至少一个从客户端通知数据复制完成信息,响应于至少一个从客户端发送的数据粘贴请求,将目标数据发送至至少一个从客户端。
具体地,当主客户端向服务器发送数据复制请求后,系统剪切板会确定相应的剪切板数据并发送至主剪切板代理模块,再由主剪切板代理模块发送至各个从剪切板代理模块,同时,所有剪切板代理模块均会向对应的客户端发送数据复制完成信息,并响应于客户端发送的数据粘贴请求,将剪切板数据发送至对应的客户端。
具体地,本申请提供了一种可选的数据复制与粘贴的方案,步骤如下:
1、主客户端向服务器发送数据复制请求;
2、系统剪切板准备剪切板数据并发送至主剪切板代理模块;
3、主剪切板代理模块将剪切板数据分发至从剪切板代理模块;
4、从剪切板代理模块将数据复制完成信息通过服务模块发出;
5、服务模块将数据复制完成信息转发给对应的从客户端的客户模块;
6、从客户端通过客户模块向服务模块发送数据粘贴请求;
7、服务模块将数据粘贴请求转发至对应的从剪切板代理模块;
8、从剪切板代理模块将剪切板数据通过服务模块发送至对应的从客户端;
9、从客户端通过客户模块将剪切板数据粘贴保存。
在本申请一些可选的实施例中,考虑到主客户端具有系统剪切板的独立控制权,因此可以在主客户端上增加UI操作,在主剪切板代理模块内部维护一套剪切板重定向黑名单,用来过滤与控制指定从客户端的剪切板重定向功能,通过控制主剪切板代理模块将剪切板数据选择性地转发到特定的从剪切板代理模块上,实现选择性的剪切板数据重定向与控制。
可选地,主客户端可以设置针对至少一个从客户端的重定向黑名单;主剪切板代理模块维护该重定向黑名单,并检测目标从客户端是否在重定向黑名单中;当目标从客户端不在重定向黑名单中时,主剪切板代理模块将目标数据发送至目标从客户端对应的目标从剪切板代理模块;当目标从客户端在重定向黑名单中时,主剪切板代理模块不再将目标数据发送至目标从剪切板代理模块;其中,目标从客户端为至少一个从客户端中的任一从客户端。
其中,每个从客户端初始时均未被加入黑名单,用户可以通过主客户端提供的UI界面操作选择性的添加从客户端进入黑名单。
具体地,本申请提供了一种可选的剪切板重定向选择与控制的方案,步骤如下:
1、主客户端通过客户模块提供UI界面操作;
2、主客户端响应用户操作将从客户端A加入重定向黑名单;
3、主客户端通过客户模块通知主剪切板代理模块将从客户端A对应的从剪切板代理模块A加入黑名单;
4、主客户端响应用户操作将从客户端B移出重定向黑名单;
5、主客户端通过客户模块通知主剪切板代理模块将从客户端B对应的从剪切板代理模块B移出黑名单;
6、主客户端向服务器发送数据复制请求,系统剪切板准备剪切板数据并发送至主剪切板代理模块;
7、主剪切板代理模块通过黑名单过滤从客户端对应的从剪切板代理模块,其中,从剪切板代理模块A由于在黑名单里,无法收到剪切板数据;从剪切板代理模块B由于未在黑名单里,可以收到剪切板数据;
8、从客户端A无法执行数据粘贴;从客户端B可以执行数据粘贴。
在本申请一些可选的实施例中,为了进一步提高用户的使用体验,使用户可以在从客户端择时、选择性地粘贴历史剪切数据,还增加了从剪切板代理模块将剪切板数据传输至云端存储的上云流程。
可选地,至少一个从剪切板代理模块将多个数据复制请求对应的多组目标数据传送至云端进行存储,得到历史复制数据;至少一个从客户端可以从历史复制数据中选择待粘贴数据,并完成对待粘贴数据的粘贴操作。
具体地,本申请提供了一种可选的从剪切板代理模块数据上云的方案,步骤如下:
1、主客户端向服务器发送数据复制请求;
2、系统剪切板准备剪切板数据并发送至主剪切板代理模块;
3、主剪切板代理模块将剪切板数据分发至从剪切板代理模块;
4、从剪切板代理模块将剪切板数据传送到云端保存记录;
5、从剪切板代理模块将数据复制完成信息发送至对应的从客户端;
6、重复步骤1到6,此时从客户端对应的云端数据会形成历史复制数据;
7、从客户端通过客户模块提供UI界面操作;
8、从客户端通过客户模块连接至云端;
9、从客户端通过客户模块从云端获取历史复制数据,并从中选择待粘贴数据,将其粘贴保存到从客户端本地。
在本申请实施例中,通过在服务器中建立与各个客户端对应的独立的剪切板代理模块,各剪切板代理模块通过服务模块与客户端建立连接,可以实现系统剪切板数据的并行传输,从而解决了相关技术中客户端与服务器系统剪切板通道唯一,主从客户端仅能顺序从系统剪切板获取数据而无法并行获取数据技术问题;其中,仅由与主客户端对应的主剪切板代理模块与系统剪切板建立连接,然后建立主剪切板代理模块到与各个从客户端对应的各个从剪切板代理模块的单向数据连接通道,系统剪切板数据由主剪切板代理模块转发到各个从剪切板代理模块,实现了主客户端对系统剪切板的独立控制权。
实施例2
在实施例1中的数据复制粘贴系统的运行环境下,本申请实施例提供了一种数据复制粘贴方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图6是根据本申请实施例的一种可选的数据复制粘贴方法的流程示意图,如图6所示,该方法至少包括步骤S602-S608,其中:
步骤S602,服务器响应于主客户端的数据复制请求,确定目标数据,其中,服务器上运行有系统剪切板、与主客户端对应的主剪切板代理模块和与从客户端对应的从剪切板代理模块。
步骤S604,服务器通过系统剪切板将目标数据发送至主剪切板代理模块,并通过主剪切板代理模块将目标数据发送至从剪切板代理模块。
步骤S606,服务器响应于主客户端的数据粘贴请求,通过主剪切板代理模块将目标数据发送至主客户端,由主客户端对目标数据进行粘贴。
步骤S608,服务器响应于从客户端的数据粘贴请求,通过从剪切板代理模块将目标数据发送至从客户端,由从客户端对目标数据进行粘贴。
在本申请一些可选的实施例中,当主客户端向服务器发送数据复制请求后,系统剪切板会确定相应的剪切板数据并发送至主剪切板代理模块,再由主剪切板代理模块发送至各个从剪切板代理模块,同时,所有剪切板代理模块均会向对应的客户端发送数据复制完成信息,并响应于客户端发送的数据粘贴请求,将剪切板数据发送至对应的客户端,由客户端对剪切板数据进行粘贴。
其中,剪切板代理模块虽然常驻于服务器中,但考虑到系统资源的占用问题,其并非时时刻刻都在运行,因此,服务器会通过服务模块监听主客户端与服务器之间及从客户端与服务器之间的连接;其中,在主客户端连接服务器时,服务模块启动主剪切板代理模块,与主剪切板代理模块建立连接,并建立系统剪切板和主剪切板代理模块之间的连接;在从客户端连接服务器时,服务模块启动对应的从剪切板代理模块,与从剪切板代理模块建立连接,并建立主剪切板代理模块与从剪切板代理模块之间的连接;在主客户端或是至少一个从客户端与服务器断开连接时,服务模块停止运行与之对应的剪切板代理模块。
在上述建立连接的过程中,系统剪切板与主剪切板代理模块之间建立双向数据连接;主剪切板代理模块与从剪切板代理模块之间建立从主剪切板代理模块至从剪切板代理模块的单向数据连接;主剪切板代理模块与服务模块之间,从剪切板代理模块与服务模块之间均建立双向数据连接。其中,服务模块与主剪切板代理模块之间,服务模块与从剪切板代理模块之间,主剪切板代理模块与从剪切板代理模块之间均采用IPC通信。
具体地,当主客户端向服务器发送数据复制请求后,系统剪切板会确定相应的剪切板数据并发送至主剪切板代理模块,再由主剪切板代理模块发送至各个从剪切板代理模块,同时,所有剪切板代理模块均会向对应的客户端发送数据复制完成信息,并响应于客户端发送的数据粘贴请求,将剪切板数据发送至对应的客户端。
具体地,一种可选的完整数据复制与粘贴的流程步骤如下:
1、主客户端向服务器发送数据复制请求;
2、系统剪切板准备剪切板数据并发送至主剪切板代理模块;
3、主剪切板代理模块将剪切板数据分发至从剪切板代理模块;
4、主剪切板代理模块将数据复制完成信息发送至主客户端,从剪切板代理模块将数据复制完成信息发送至对应的从客户端;
5、主客户端向主剪切板代理模块发送数据粘贴请求;
6、主剪切板代理模块将剪切板数据发送至主客户端;
7、主客户端通过客户模块将剪切板数据粘贴保存;
8、从客户端向对应的从剪切板代理模块发送数据粘贴请求;
9、从剪切板代理模块将剪切板数据发送至对应的从客户端;
10、从客户端通过客户模块将剪切板数据粘贴保存。
在本申请实施例中,服务器响应于主客户端的数据复制请求,确定目标数据,并通过系统剪切板将目标数据发送至主剪切板代理模块,通过主剪切板代理模块将目标数据发送至从剪切板代理模块;之后,响应于主客户端的数据粘贴请求,主剪切板代理模块将目标数据发送至主客户端,由主客户端对目标数据进行粘贴;响应于从客户端的数据粘贴请求,从剪切板代理模块将目标数据发送至从客户端,由从客户端对目标数据进行粘贴。其中,通过在服务器中建立与各个客户端对应的独立的剪切板代理模块,各剪切板代理模块通过服务模块与客户端建立连接,可以实现系统剪切板数据的并行传输,从而解决了相关技术中客户端与服务器系统剪切板通道唯一,主从客户端仅能顺序从系统剪切板获取数据而无法并行获取数据技术问题;由于只有主剪切板代理模块与系统剪切板建立连接,再建立主剪切板代理模块到各个从剪切板代理模块的单向数据连接通道,系统剪切板数据由主剪切板代理模块转发到各个从剪切板代理模块,实现了主客户端对系统剪切板的独立控制权。
实施例3
根据本申请实施例,还提供了一种用于实现实施例2中的数据复制粘贴方法的数据复制粘贴装置,如图7所示,该装置包括复制模块70,发送模块72,第一粘贴模块74和第二粘贴模块76,其中:
复制模块70,用于响应主客户端的数据复制请求,确定目标数据;
发送模块72,用于通过系统剪切板将目标数据发送至与主客户端对应的主剪切板代理模块,并通过主剪切板代理模块将目标数据发送至与从客户端对应的从剪切板代理模块;
第一粘贴模块74,用于响应主客户端的数据粘贴请求,通过主剪切板代理模块将目标数据发送至主客户端,由主客户端对目标数据进行粘贴;
第二粘贴模块76,用于响应从客户端的数据粘贴请求,通过从剪切板代理模块将目标数据发送至从客户端,由从客户端对目标数据进行粘贴。
需要说明的是,本申请实施例中的数据复制粘贴装置中的各模块与实施例2中的数据复制粘贴方法实施步骤一一对应,由于实施例2中已经进行了详尽的描述,本实施例中部分未体现的细节可以参考实施例2,在此不再过多赘述。
实施例4
根据本申请实施例,还提供了一种非易失性存储介质,该非易失性存储介质包括存储的程序,其中,在程序运行时控制非易失性存储介质所在设备执行上述的数据复制粘贴方法。
根据本申请实施例,还提供了一种处理器,该处理器用于运行程序,其中,处理器在程序运行时执行上述的数据复制粘贴方法。
具体地,处理器在程序运行时执行实现以下步骤:服务器响应于主客户端的数据复制请求,确定目标数据,其中,服务器上运行有系统剪切板、与主客户端对应的主剪切板代理模块和与从客户端对应的从剪切板代理模块;服务器通过系统剪切板将目标数据发送至主剪切板代理模块,并通过主剪切板代理模块将目标数据发送至从剪切板代理模块;服务器响应于主客户端的数据粘贴请求,通过主剪切板代理模块将目标数据发送至主客户端,由主客户端对目标数据进行粘贴;服务器响应于从客户端的数据粘贴请求,通过从剪切板代理模块将目标数据发送至从客户端,由从客户端对目标数据进行粘贴。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (12)
1.一种数据复制粘贴系统,其特征在于,包括:
客户端,包括主客户端和至少一个从客户端,其中,所述主客户端用于向服务器发起数据复制请求或数据粘贴请求,并完成对目标数据的粘贴操作;所述至少一个从客户端用于向所述服务器发起数据粘贴请求,并完成对所述目标数据的粘贴操作;
所述服务器,包括系统剪切板,与所述主客户端对应的主剪切板代理模块和与所述至少一个从客户端对应的至少一个从剪切板代理模块,其中,所述系统剪切板用于依据所述数据复制请求确定所述目标数据,并将所述目标数据发送至所述主剪切板代理模块;所述主剪切板代理模块用于将所述目标数据发送至所述主客户端和所述至少一个从剪切板代理模块;所述至少一个从剪切板代理模块用于将所述目标数据发送至所述至少一个从客户端。
2.根据权利要求1所述的系统,其特征在于,
所述主客户端和所述至少一个从客户端中均包括:客户模块,所述客户模块用于向所述服务器发起所述数据复制请求或所述数据粘贴请求,并完成对所述目标数据的粘贴操作。
3.根据权利要求1所述的系统,其特征在于,
所述服务器中还包括:服务模块,所述服务模块用于监听所述主客户端与所述服务器之间及所述至少一个从客户端与所述服务器之间的连接;其中,
在所述主客户端连接所述服务器时,所述服务模块用于启动所述主剪切板代理模块,与所述主剪切板代理模块建立连接,并建立所述系统剪切板和所述主剪切板代理模块之间的连接;
在所述至少一个从客户端连接所述服务器时,所述服务模块用于启动所述至少一个从剪切板代理模块,与所述至少一个从剪切板代理模块建立连接,并建立所述主剪切板代理模块与所述至少一个从剪切板代理模块之间的连接。
4.根据权利要求3所述的系统,其特征在于,包括:
所述系统剪切板与所述主剪切板代理模块之间建立双向数据连接;
所述主剪切板代理模块与所述至少一个从剪切板代理模块之间建立从所述主剪切板代理模块至所述至少一个从剪切板代理模块的单向数据连接;
所述主剪切板代理模块与所述服务模块之间,所述至少一个从剪切板代理模块与所述服务模块之间均建立双向数据连接。
5.根据权利要求3所述的系统,其特征在于,所述服务模块与所述主剪切板代理模块之间,所述服务模块与所述至少一个从剪切板代理模块之间,所述主剪切板代理模块与所述至少一个从剪切板代理模块之间均采用进程间通信。
6.根据权利要求1所述的系统,其特征在于,
所述至少一个从剪切板代理模块还用于向所述至少一个从客户端通知数据复制完成信息,响应于所述至少一个从客户端发送的数据粘贴请求,将所述目标数据发送至所述至少一个从客户端。
7.根据权利要求1所述的系统,其特征在于,
所述主客户端还用于设置针对所述至少一个从客户端的重定向黑名单;
所述主剪切板代理模块还用于维护所述重定向黑名单,并检测目标从客户端是否在所述重定向黑名单中;当所述目标从客户端不在所述重定向黑名单中时,所述主剪切板代理模块将所述目标数据发送至所述目标从客户端对应的目标从剪切板代理模块;当所述目标从客户端在所述重定向黑名单中时,所述主剪切板代理模块不再将所述目标数据发送至所述目标从剪切板代理模块;其中,所述目标从客户端为所述至少一个从客户端中的任一从客户端。
8.根据权利要求1所述的系统,其特征在于,
所述至少一个从剪切板代理模块还用于将多个所述数据复制请求对应的多组目标数据传送至云端进行存储,得到历史复制数据;
所述至少一个从客户端还用于从所述历史复制数据中选择待粘贴数据,并完成对所述待粘贴数据的粘贴操作。
9.一种数据复制粘贴方法,其特征在于,包括:
服务器响应于主客户端的数据复制请求,确定目标数据,其中,所述服务器上运行有系统剪切板、与所述主客户端对应的主剪切板代理模块和与从客户端对应的从剪切板代理模块;
所述服务器通过所述系统剪切板将所述目标数据发送至所述主剪切板代理模块,并通过所述主剪切板代理模块将所述目标数据发送至所述从剪切板代理模块;
所述服务器响应于所述主客户端的数据粘贴请求,通过所述主剪切板代理模块将所述目标数据发送至所述主客户端,由所述主客户端对所述目标数据进行粘贴;
所述服务器响应于所述从客户端的数据粘贴请求,通过所述从剪切板代理模块将所述目标数据发送至所述从客户端,由所述从客户端对所述目标数据进行粘贴。
10.一种数据复制粘贴装置,其特征在于,包括:
复制模块,用于响应主客户端的数据复制请求,确定目标数据;
发送模块,用于通过系统剪切板将所述目标数据发送至与所述主客户端对应的主剪切板代理模块,并通过所述主剪切板代理模块将所述目标数据发送至与从客户端对应的从剪切板代理模块;
第一粘贴模块,用于响应所述主客户端的数据粘贴请求,通过所述主剪切板代理模块将所述目标数据发送至所述主客户端,由所述主客户端对所述目标数据进行粘贴;
第二粘贴模块,用于响应所述从客户端的数据粘贴请求,通过所述从剪切板代理模块将所述目标数据发送至所述从客户端,由所述从客户端对所述目标数据进行粘贴。
11.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,在所述程序运行时控制所述非易失性存储介质所在设备执行权利要求9中所述的数据复制粘贴方法。
12.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求9中所述的数据复制粘贴方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111155856.2A CN113918359B (zh) | 2021-09-29 | 数据复制粘贴系统、方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111155856.2A CN113918359B (zh) | 2021-09-29 | 数据复制粘贴系统、方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113918359A true CN113918359A (zh) | 2022-01-11 |
CN113918359B CN113918359B (zh) | 2024-10-22 |
Family
ID=
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262565A (zh) * | 2010-05-28 | 2011-11-30 | 腾讯科技(深圳)有限公司 | 一种跨程序应用剪切板的方法和设备 |
US20120192176A1 (en) * | 2011-01-21 | 2012-07-26 | Amit Shah | Providing Seamless Copy-Paste Operations in a Virtual Machine Environment |
CN102870103A (zh) * | 2010-02-16 | 2013-01-09 | 谷歌公司 | 在计算机应用中基于服务器的数据共享 |
CN102882963A (zh) * | 2012-09-25 | 2013-01-16 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、相关终端及系统 |
US20140095673A1 (en) * | 2012-09-25 | 2014-04-03 | Tencent Technology (Shenzhen) Company Limited | Systems and methods for transmitting and receiving data |
US20150207850A1 (en) * | 2012-09-11 | 2015-07-23 | Google Inc. | Clipboard |
WO2015196798A1 (zh) * | 2014-06-25 | 2015-12-30 | 中兴通讯股份有限公司 | 一种剪切板处理方法、终端和系统 |
US20160285928A1 (en) * | 2015-03-23 | 2016-09-29 | Adobe Systems Incorporated | Copy and paste for web conference content |
US20180335998A1 (en) * | 2017-05-16 | 2018-11-22 | Microsoft Technology Licensing, Llc | Roaming clipboard copy/paste |
CN112269627A (zh) * | 2020-09-21 | 2021-01-26 | 西安万像电子科技有限公司 | 一种数据处理方法、装置及系统 |
CN112269986A (zh) * | 2020-10-29 | 2021-01-26 | 深信服科技股份有限公司 | 进程管理方法、装置及存储介质 |
CN112445579A (zh) * | 2020-12-11 | 2021-03-05 | 西安万像电子科技有限公司 | 零终端数据处理系统及其文件复制方法、装置 |
CN112565425A (zh) * | 2020-12-03 | 2021-03-26 | 南京机敏软件科技有限公司 | 在多个跨云服务器主机会话的云应用程序间进行拷贝粘贴的方法 |
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102870103A (zh) * | 2010-02-16 | 2013-01-09 | 谷歌公司 | 在计算机应用中基于服务器的数据共享 |
CN102262565A (zh) * | 2010-05-28 | 2011-11-30 | 腾讯科技(深圳)有限公司 | 一种跨程序应用剪切板的方法和设备 |
US20120192176A1 (en) * | 2011-01-21 | 2012-07-26 | Amit Shah | Providing Seamless Copy-Paste Operations in a Virtual Machine Environment |
US20150207850A1 (en) * | 2012-09-11 | 2015-07-23 | Google Inc. | Clipboard |
CN102882963A (zh) * | 2012-09-25 | 2013-01-16 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、相关终端及系统 |
US20140095673A1 (en) * | 2012-09-25 | 2014-04-03 | Tencent Technology (Shenzhen) Company Limited | Systems and methods for transmitting and receiving data |
WO2015196798A1 (zh) * | 2014-06-25 | 2015-12-30 | 中兴通讯股份有限公司 | 一种剪切板处理方法、终端和系统 |
US20160285928A1 (en) * | 2015-03-23 | 2016-09-29 | Adobe Systems Incorporated | Copy and paste for web conference content |
US20180335998A1 (en) * | 2017-05-16 | 2018-11-22 | Microsoft Technology Licensing, Llc | Roaming clipboard copy/paste |
CN112269627A (zh) * | 2020-09-21 | 2021-01-26 | 西安万像电子科技有限公司 | 一种数据处理方法、装置及系统 |
CN112269986A (zh) * | 2020-10-29 | 2021-01-26 | 深信服科技股份有限公司 | 进程管理方法、装置及存储介质 |
CN112565425A (zh) * | 2020-12-03 | 2021-03-26 | 南京机敏软件科技有限公司 | 在多个跨云服务器主机会话的云应用程序间进行拷贝粘贴的方法 |
CN112445579A (zh) * | 2020-12-11 | 2021-03-05 | 西安万像电子科技有限公司 | 零终端数据处理系统及其文件复制方法、装置 |
Non-Patent Citations (3)
Title |
---|
MOHAMMAD FAIZ等: "Data synchronization in distributed client-server applications", 《2016 IEEE INTERNATIONAL CONFERENCE ON ENGINEERING AND TECHNOLOGY (ICETECH)》, 19 September 2016 (2016-09-19), pages 1 - 6 * |
刘行: "基于协议代理的安全内控运维审计系统设计与实现", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》, no. 5, 15 May 2019 (2019-05-15), pages 042 - 935 * |
广漠飘羽: "vim与系统剪切板之间的复制粘贴", pages 1 - 4, Retrieved from the Internet <URL:《https://www.cnblogs.com/gmpy/p/11177719.html》> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103457973A (zh) | 一种图片上传方法、系统、图片上传客户端及网络服务器 | |
CN104219615A (zh) | 一种共享无线流量的方法和装置 | |
CN105808374B (zh) | 一种快照处理方法及相关设备 | |
CN106095622A (zh) | 数据备份方法及装置 | |
CN110795496A (zh) | 数据同步方法、装置及系统 | |
CN108347476A (zh) | 跨机房数据同步方法、装置以及服务器 | |
CN110493122A (zh) | 一种会话信息的同步方法、装置、计算设备及存储介质 | |
WO2000073902A1 (en) | Single logical clipboard for multiple computers | |
CN103731465A (zh) | 分布式系统及其事务处理方法 | |
CN102917127A (zh) | 一种音频传输方法及系统 | |
CN111666180A (zh) | 一种支持ppt演示的双机热备控制方法及系统 | |
CN105307217A (zh) | 网元间链路弹性处理方法及装置 | |
CN110750206B (zh) | 数据处理方法、装置及系统 | |
CN110233791B (zh) | 数据去重方法和装置 | |
CN113918359A (zh) | 数据复制粘贴系统、方法和装置 | |
CN113918359B (zh) | 数据复制粘贴系统、方法和装置 | |
CN108874699B (zh) | 多系统使用mtp功能的方法、装置及电子设备 | |
CN116208486A (zh) | 一种网关备份、更换方法和系统 | |
CN104580672B (zh) | 一种信息处理方法及电子设备 | |
CN104486215A (zh) | 一种消息发送方法及设备 | |
CN113138717B (zh) | 节点部署方法、设备及存储介质 | |
CN113726852A (zh) | 数据传输方法和系统、及零终端和云端服务器 | |
CN111209342B (zh) | 分布式系统、数据同步与节点管理方法、设备及存储介质 | |
CN103595762B (zh) | 一种云环境下面向移动终端的软件远程执行系统 | |
CN111796768B (zh) | 分布式服务协调方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |