执行命令的方法和装置与流程

文档序号:30664302发布日期:2022-07-06 02:26阅读:128来源:国知局
执行命令的方法和装置与流程

1.本技术涉及云计算技术领域,尤其涉及一种执行命令的方法和装置。


背景技术:

2.容器是一种轻量级操作系统层面的虚拟机,它为应用软件及其依赖组件提供了一个资源独立的运行环境。应用软件所依赖的组件会被打包成一个可重用的镜像,镜像运行环境并不会与主操作系统共享内存、cpu和硬盘空间,由此也保证了容器内部的进程与容器外部进程的独立关系。
3.目前,客户端可以通过kubectl exec执行容器命令。kubectl exec在客户端中的处理过程可以包括:客户端可以向应用程序接口(application programming interface,api)服务器发送超文本传输协议(hyper text transfer protocol,http)请求,api服务器接收该请求后,可以向客户端发送响应消息,该响应消息用于表示api服务器已切换到spdy协议,api服务器可以使用spdy协议在容器外部执行命令以调试应用程序。
4.这种实现方式,kubectl exec调用api服务器对外暴露的接口执行容器命令,该接口只能实现容器外部执行命令,无法实现在容器内部执行命令。


技术实现要素:

5.本技术提供了一种执行命令的方法和装置,可以在容器内部执行容器命令。
6.第一方面,本技术提供了一种执行命令的方法,该方法包括:接收来自客户端的第一容器命令;判断第一容器命令是否满足预设条件;若第一容器命令满足预设条件,创建第一进程,第一进程与目标容器共享命名空间;通过第一进程在目标容器内部执行第一容器命令。
7.本技术提供的执行命令的方法,通过创建与目标容器共享命名空间的进程在目标容器内部执行容器命令,可以解决现有技术中只能在容器外部执行容器命令的缺点,同时,只有处理满足预设条件的容器命令,才可以创建第一进程,通过第一进程在容器内部执行容器命令,并不是对于所有的容器命令均建立第一进程,可以减少创建进程产生的性能消耗。另外,存在特定的容器命令必须在容器外部执行,通过预设条件也可以将这些命令排除在外。
8.结合第一方面,在第一方面的某些实现方式中,方法还包括:若第一容器命令不满足预设条件,在目标容器外部执行第一容器命令。
9.本技术提供的执行命令的方法,不满足预设条件的容器命令可以在容器外部执行,满足预设条件的容器命令可以在容器内部执行,通过预设条件可以灵活地在容器内部和外部切换,有利于容器命令的执行。
10.结合第一方面,在第一方面的某些实现方式中,方法还包括:接收来自客户端的访问集群的请求消息;确定集群的鉴权类型;根据集群的鉴权类型,确定通信协议,鉴权类型为无鉴权或者鉴权,通信协议用于访问集群;向客户端发送响应消息,响应消息用于表示已
切换至通信协议。
11.本技术提供的执行命令的方法,在访问集群前,可以根据集群的不同鉴权类型,确定不同的通信协议,可以适应多种不同的集权场景,使用范围更广。
12.结合第一方面,在第一方面的某些实现方式中,确定集群的鉴权类型,包括:获取集群的互联网协议ip的端口号;根据端口号,确定集群的鉴权类型。
13.本技术提供的执行命令的方法,在访问集群前,可以探测集群的ip的端口号,智能化的确定集群的鉴权类型,可以提高访问集群的效率。
14.结合第一方面,在第一方面的某些实现方式中,集群的鉴权类型为无鉴权,通信协议为spdy协议;或者,集群的鉴权类型为鉴权,通信协议为持久化协议。
15.本技术提供的执行命令的方法,若集群需要进行鉴权,可以通过持久化协议与鉴权集群进行连接,若集群不需要进行鉴权,可以通过spdy协议与鉴权集群进行连接,可以适用于鉴权的集群,也可以适用于无鉴权的集群,使用范围较广,同时,可以避免由于使用鉴权的协议去访问无鉴权集群的出现异常访问的情况。
16.结合第一方面,在第一方面的某些实现方式中,上述持久化协议为websocket。
17.第二方面,本技术提供了一种执行命令的装置,该装置包括收发模块和处理模块。收发模块,用于接收来自客户端的第一容器命令;处理模块,用于判断第一容器命令是否满足预设条件;若第一容器命令满足预设条件,创建第一进程,第一进程与目标容器共享命名空间;以及,通过第一进程在目标容器内部执行第一容器命令。
18.结合第二方面,在第二方面的某些实现方式中,处理模块还用于:若第一容器命令不满足预设条件,在目标容器外部执行第一容器命令。
19.结合第二方面,在第二方面的某些实现方式中,收发模块还用于:接收来自客户端的访问集群的请求消息;处理模块还用于:确定集群的鉴权类型;根据集群的鉴权类型,确定通信协议,鉴权类型为无鉴权或者鉴权,通信协议用于访问集群;收发模块还用于:向客户端发送响应消息,响应消息用于表示已切换至通信协议。
20.结合第二方面,在第二方面的某些实现方式中,处理模块还用于:获取集群的互联网协议ip的端口号;根据端口号,确定集群的鉴权类型。
21.结合第二方面,在第二方面的某些实现方式中,集群的鉴权类型为无鉴权,通信协议为spdy协议;或者,集群的鉴权类型为鉴权,通信协议为持久化协议。
22.结合第二方面,在第二方面的某些实现方式中,上述持久化协议为websocket。
23.第三方面,本技术提供了一种执行命令的装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,以执行上述第一方面中任一种可能实现方式中的方法。
24.可选地,处理器为一个或多个,存储器为一个或多个。
25.可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
26.在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
27.上述第三方面中的执行命令的装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当
通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
28.第四方面,本技术提供了一种计算机可读存储介质,所述计算机可读存储介质有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
29.第五方面,本技术提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
30.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
31.图1为本技术实施例适用的一种通信系统的示意图;
32.图2为本技术实施例提供的一种执行命令的方法的示意性流程图;
33.图3为本技术实施例提供的另一种执行命令的方法的示意性流程图;
34.图4为本技术实施例提供的一种确定通信协议的方法的示意性流程图;
35.图5为本技术实施例提供的一种执行命令的装置的示意性框图;
36.图6为本技术实施例提供的另一种执行命令的装置的示意性框图。
37.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
38.下面将结合附图,对本技术中的技术方案进行描述。需要说明的是,本技术提供的执行命令的方法和装置可用于云计算技术领域,也可用于除云计算技术领域以外的任意领域。本技术提供的执行命令的方法和装置对应用领域不作限定。
39.为了便于理解本技术实施例,首先对本技术实施例中的相关术语进行介绍。
40.1、websocket
41.websocket是一种持久化协议,浏览器只需要与服务器握手一次就能保持通信,是伴随着h5发布的一种新兴的协议。
42.websocket的特点可以包括:
43.1)websocket是基于传输控制协议(transmission control protocol,tcp)的一种的协议,与服务器的握手是http的复写。
44.2)websocket是一种全双工通信协议,即客户端可以与服务器发送消息,服务器也可以给客户端发送消息。
45.3)websocket可以实现持续的进行长连接。
46.2、就绪性探测
47.就绪性探测是指pod生命周期(lifecycle)中的就绪性探测。就绪性探测和服务(service)调度有着重要的关联性。
48.具体而言,service是动态地、有生命周期的pod资源提供的一个固定入口端口。客户端不是直接访问pod,而是访问service。service使用标签选择器关联至各pod资源。
49.但目前的这种实现方式存在一个问题:当api服务器新创建了一个pod,且该新pod正好符合service标签选择器的选择条件时,api服务器可以立即将该pod作为后端对象。当api服务器接收到客户端的请求时,api服务器可能调度到这个新pod上。但是这个新pod一创建成功,就被service关联到后端,此时pod里的服务很有可能还没就绪。这个时候有请求被调度上来,会出现访问不到服务的现象。因此api服务器在service关联pod之前会对pod做就绪性探测以避免出现访问不到服务的现象。
50.为了更好地理解本技术实施例,首先对本技术实施例适用的通信系统进行介绍。
51.图1示出了一种通信系统100的示意图。通信系统100包括api服务器101和客户端102。客户端102可以通过kubectl exec执行容器命令。其中,kubectl exec是操作kubernetes(k8s)集群的命令行工具。
52.kubectl exec在客户端102中的处理过程可以包括:
53.客户端102可以向api服务器101发送http请求,例如,get请求,用于请求获取pod信息;post请求,用于请求调用pod的子资源exec在容器内执行命令。api服务器101接收http请求后,可以向客户端102发送响应消息,该响应消息用于表示api服务器101已切换到spdy协议,api服务器101使用spdy协议在容器外部执行命令以调试应用程序。
54.这种实现方式,存在两个问题:
55.1)kubectl exec调用api服务器对外暴露的接口执行容器命令,该接口只能实现容器外部执行命令,无法实现在容器内部执行命令。
56.2)api服务器对外暴露的接口只能在免鉴权的集群上执行命令,无法应用于鉴权的集群。
57.有鉴于此,本技术实施例提供一种执行命令的方法和装置,拓展了服务器的接口,可以通过该接口在容器内部执行容器命令。在一种可能的实现方式下,还可以应用于鉴权的集群执行容器命令。
58.在介绍本技术实施例提供的执行命令的方法和装置之前,先做出以下说明。
59.本技术实施例中的“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
60.图2为本技术实施例提供的一种执行命令的方法200的示意性流程图,该方法200可以由服务器执行,例如上述api服务器101,但本技术实施例对此不作限定。
61.如图2所示,该方法200可以包括如下步骤:
62.s201、接收来自客户端的第一容器命令。
63.第一容器命令也可以称为第一容器指令或者第一指令,本技术实施例对此不作限定。第一容器命令指的是可以在容器执行的任意命令。
64.示例性地,第一容器命令的格式可以如下:kubectl exec-it podname-c containername-n namespace
‑‑
shell comand。
65.客户端可以通过kubectl exec向服务器发送第一容器命令,对应地,服务器接收该第一容器命令。
66.s202、判断第一容器命令是否满足预设条件。
67.预设条件可以用于区分第一容器命令是简单命令,还是复杂命令。简单命令可以理解为命令所指示的内容较少,例如,cat命令、tsef命令等。复杂命令可以理解为命令所指示的内容较多,例如,带有管道符的命令。
68.示例性地,预设条件可以为带有管道符。服务器判断第一容器命令是否带有管道符。
69.s203、若第一容器命令满足预设条件,创建第一进程,第一进程与目标容器共享命名空间(namespace)。
70.第一进程为执行第一容器命令的进程。例如,第一进程可以为shell进程。
71.若第一容器命令满足预设条件,服务器可以创建与目标容器共享命名空间的第一进程,以用于执行第一容器命令。
72.可选地,基于就绪性探测方法,当服务器新建pod,且pod直接关联在service后端时,第一容器命令满足预设条件,服务器可以创建第一进程,并将第一容器命令调度到第一进程。
73.s204、通过第一进程在目标容器内部执行第一容器命令。
74.本技术实施例提供的执行命令的方法,通过创建与目标容器共享命名空间的进程在目标容器内部执行容器命令,可以解决现有技术中只能在容器外部执行容器命令的缺点,同时,只有处理满足预设条件的容器命令,才可以创建第一进程,通过第一进程在容器内部执行容器命令,并不是对于所有的容器命令均建立第一进程,可以减少创建进程产生的性能消耗。另外,存在特定的容器命令必须在容器外部执行,通过预设条件也可以将这些命令排除在外。
75.可选地,上述方法200还可以包括:若第一容器命令不满足预设条件,在目标容器外部执行第一容器命令。
76.若第一容器命令不满足预设条件,服务器可以基于现有技术执行第一容器命令。
77.示例性地,图3示出了一种执行命令的方法300的示意性流程图。该方法300可以有服务器执行。如图3所示,该方法300包括如下步骤:
78.s301、接收第一容器命令。
79.服务器可以接收来自客户端的第一容器命令,具体可以参考上述s201,此处不再赘述。
80.s302、判断第一容器命令是否满足预设条件。
81.预设条件用于区分第一容器命令是简单命令,还是复杂命令,具体可以参考上述s202,此处不再赘述。
82.若第一容器命令满足预设条件,服务器可以执行s303。若第一容器命令不满足预设条件,服务器可以执行s304。
83.s303、若第一容器命令满足预设条件,在容器内部执行第一容器命令。
84.若第一容器命令满足预设条件,服务器可以通过上述s203和s204执行第一容器命令。
85.s304、若第一容器命令不满足预设条件,在容器外部执行第一容器命令。
86.本技术实施例提供的执行命令的方法,不满足预设条件的容器命令可以在容器外部执行,满足预设条件的容器命令可以在容器内部执行,通过预设条件可以灵活地在容器内部和外部切换,有利于容器命令的执行。
87.作为一个可选的实施例,上述方法200还可以包括:接收客户端的访问集群的请求消息;确定集群的鉴权类型;根据集群的鉴权类型,确定通信协议,鉴权类型为无鉴权或者鉴权,通信协议用于访问集群;向客户端发送响应消息,响应消息用于表示已切换至通信协议。
88.集群的鉴权类型用于表示访问集群是否需要鉴权。无鉴权或者免鉴权,用于表示访问集群不需要鉴权,鉴权或者有鉴权,用于表示访问集群需要鉴权。集群的鉴权类型也可以称为集群的鉴权标识,本技术实施例对此不作限定。
89.通信协议指的是服务器访问集群所用的协议。例如,spdy协议、持久化协议(websocket)等等。
90.客户端可以向服务器发送访问集群的请求消息,服务器接收该请求消息后,确定集群的鉴权类型,以确定访问集群的通信协议,确定访问集群的通信协议后,可以向客户端发送响应消息,已告知客户端已切换至所需的通信协议。
91.本技术实施例提供的执行命令的方法,在访问集群前,可以根据集群的不同鉴权类型,确定不同的通信协议,可以适应多种不同的集权场景,使用范围更广。
92.可选地,上述确定集群的鉴权类型,包括:获取集群的互联网协议(internet protocol address)ip的端口号;根据端口号,确定集群的鉴权类型。
93.集群的ip的端口号的数量可以为至少一个,每个端口号可以对应一个应用程序。同一个ip不同的端口号可以对应不同的鉴权类型,也可以对应相同的鉴权类型,本技术实施例对此不作限定。
94.示例性地,当端口号为8080时,服务器可以确定集群的鉴权类型为无鉴权。当端口号为6443或者4442时,服务器可以确定集群的鉴权类型为鉴权。
95.本技术实施例提供的执行命令的方法,在访问集群前,可以探测集群的ip的端口号,智能化的确定集群的鉴权类型,可以提高访问集群的效率。
96.作为一个可选的实施例,上述集群的鉴权类型为无鉴权,通信协议为spdy协议;或者,集群的鉴权类型为鉴权,通信协议为持久化协议。
97.图4示出了一种确定通信协议的方法400的示意性流程图。如图4所示,该方法400包括:
98.s401、判断集群是否需要进行鉴权。
99.服务器可以自动识别鉴权集群。服务器在访问集群前,可以判断集群是否需要进行鉴权。具体而言,服务器可以通过集群的鉴权类型,确定集群是否需要进行鉴权,具体可以参考上述描述,此处不再赘述。
100.若集群需要进行鉴权,服务器可以执行s402。若集群不需要进行鉴权,服务器可以执行s403。
101.s402、若集群需要进行鉴权,将持久化协议确定为通信协议。
102.若集群需要进行鉴权,服务器可以通过持久化协议与鉴权集群进行连接。
103.可选地,持久化协议可以为websocket。
104.s403、若集群不需要进行鉴权,将spdy协议确定为通信协议。
105.若集群不需要进行鉴权,服务器可以通过spdy协议与鉴权集群进行连接。
106.本技术实施例提供的执行命令的方法,若集群需要进行鉴权,可以通过持久化协议与鉴权集群进行连接,若集群不需要进行鉴权,可以通过spdy协议与鉴权集群进行连接,可以适用于鉴权的集群,也可以适用于无鉴权的集群,使用范围较广,同时,可以避免由于使用鉴权的协议去访问无鉴权集群的出现异常访问的情况。
107.上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
108.上文中结合图1至图4,详细描述了本技术实施例提供的执行命令的方法,下面将结合图5和图6,详细描述本技术实施例提供的执行命令的装置。
109.图5示出了本技术实施例提供的一种执行命令的装置500。该装置500包括:获取模块510和处理模块520。其中,获取模块510用于:接收来自客户端的第一容器命令;处理模块520用于:判断第一容器命令是否满足预设条件;若第一容器命令满足预设条件,创建第一进程,第一进程与目标容器共享命名空间;以及,通过第一进程在目标容器内部执行第一容器命令。
110.可选地,处理模块520还用于:若第一容器命令不满足预设条件,在目标容器外部执行第一容器命令。
111.可选地,收发模块510还用于:接收来自客户端的访问集群的请求消息;处理模块520还用于:确定集群的鉴权类型;根据集群的鉴权类型,确定通信协议,鉴权类型为无鉴权或者鉴权,通信协议用于访问集群;收发模块510还用于:向客户端发送响应消息,响应消息用于表示已切换至通信协议。
112.可选地,处理模块520还用于:获取集群的互联网协议ip的端口号;根据端口号,确定集群的鉴权类型。
113.可选地,集群的鉴权类型为无鉴权,通信协议为spdy协议;或者,集群的鉴权类型为鉴权,通信协议为持久化协议。
114.可选地,上述持久化协议为websocket。
115.应理解,这里的装置500以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,该装置500可以具体为上述实施例中的服务器,或者,上述实施例中服务器的功能可以集成在该装置500中,该装置500可以用于执行上述方法实施例中与服务器对应的各个流程和/或步骤,为避免重复,在此不再赘述。
116.上述装置500具有实现上述方法200、方法300或者方法400中服务器执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
117.图6示出了本技术实施例提供的一种执行命令的装置600。该装置600包括:处理器610、收发器620和存储器630。其中,处理器610、收发器620和存储器630通过内部连接通路互相通信,该存储器630用于存储指令,该处理器610用于执行该存储器630存储的指令,以控制该收发器发送信号和/或接收信号。
118.应理解,该装置600可以用于执行上述方法实施例中与服务器对应的各个步骤和/或流程。可选地,该存储器630可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。存储器630的一部分还可以包括非易失性随机存取存储器。例如,存储器630还可以存储设备类型的信息。该处理器610可以用于执行存储器630中存储的指令,并且当该处理器610执行存储器630中存储的指令时,该处理器610用于执行上述与该服务器对应的方法实施例的各个步骤和/或流程。
119.应理解,在本技术实施例中,上述装置600的处理器610可以是中央处理单元(central processing unit,cpu),该处理器610还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
120.在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
121.本技术提供一种可读计算机存储介质,该可读计算机存储介质用于存储计算机程序,该计算机程序用于实现上述实施例中服务器对应的方法。
122.本技术提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述实施例中服务器对应的方法。
123.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
124.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
125.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
126.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
127.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
128.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
129.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1