一种远程调试的方法、相关设备及系统与流程

文档序号:12478269阅读:593来源:国知局
导航: X技术> 最新专利> 电子通信装置的制造及其应用技术
一种远程调试的方法、相关设备及系统与流程

本发明涉及网络技术领域,尤其涉及一种远程调试的方法、相关设备及系统。



背景技术:

对于超文本预处理器(英文全称:Hypertext Preprocessor,英文缩写:PHP)的程序而言,本地开发机需要随时随地访问PHP,并通过跟踪、调试和分析来确定其运行状况,以此来进行远程设备调试和程序的更新。

现有方案中,可以采用开放源代码的PHP程序调试器Xdebug进行远程调试,请参阅图1,图1为现有技术中Xdebug远程调试的流程示意图,下面将简单介绍采用Xdebug远程调试的方法:

第一步,本地开发机的集成开发环境(英文全称:Integrated Development Environment,英文缩写:IDE)开始监听9000端口的传输控制协议(英文全称:Transmission Control Protocol,英文缩写:TCP)连接请求;

第二步,本地开发机通过浏览器访问待调试PHP请求,并携带Xdebug标识,该标识名未XDEBUG_SESSION;

第三步,PHP收到请求后,主动向本地开发机的9000端口发起TCP连接,从而与本地开发机的IDE建立了TCP连接;

第四步,本地开发机的IDE与PHP通过第三步建立的TCP连接进行调试。

然而,采用Xdebug远程调试的方法只能应用在没有防火墙安全策略限制的网络环境下,但是在绝大多数情况下,本地开发机网络都存在防火墙安全策略限制,那么在Xdebug远程调试的方法的第三步中,PHP会因为本地开发机存在防火墙机制从而无法建立连接,这也将无法进行设备间的远程调试。



技术实现要素:

本发明实施例提供了一种远程调试的方法、相关设备及系统,可以在客户端与服务器中分别部署代理,由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

有鉴于此,本发明第一方面提供了一种远程调试的方法,所述方法应用于远程调试的系统,所述系统中包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在所述服务器中部署服务器代理,针对所述每个客户端中部署的所述客户端代理,所述方法包括:

向所述服务器代理发送客户端识别标识;

当所述服务器代理根据所述客户端识别标识确定客户端身份时,接收所述服务器代理发送的待调试业务数据;

将所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;

接收所述IDE发送的所述业务调试数据;

将所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。

本发明第二方面提供了一种远程调试的方法,所述方法应用于远程调试的系统,所述系统中包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在所述服务器中部署服务器代理,所述方法包括:

接收至少一个客户端代理发送的客户端识别标识;

根据所述客户端识别标识确定每个客户端的身份;

根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,所述待调试业务数据用于所述客户端中的集成开发环境IDE进行调试,并得到业务调试数据;

接收所述每个客户端代理发送的所述业务调试数据,所述业务调试数据用于所述服务器进行业务调试。

本发明第三方面提供了一种客户端代理,所述客户端代理部署于客户端,所述客户端应用于远程调试的系统,所述系统还包括服务器,所述服务器中部署服务器代理,所述客户端代理包括:

第一发送模块,用于向所述服务器代理发送客户端识别标识;

第一接收模块,用于当所述服务器代理根据所述第一发送模块发送的所述客户端识别标识确定客户端身份时,接收所述服务器代理发送的待调试业务数据;

第二发送模块,用于将所述第一接收模块接收的所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;

第二接收模块,用于接收所述IDE发送的所述业务调试数据;

第三发送模块,用于将所述第二接收模块接收的所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。

本发明第四方面提供了一种服务器代理,所述服务器代理部署于服务器,所述服务器应用于远程调试的系统,所述系统还包括至少一个客户端,在每个客户端中部署客户端代理,所述服务器代理包括:

第一接收模块,用于接收至少一个客户端代理发送的客户端识别标识;

确定模块,用于根据所述第一接收模块接收的所述客户端识别标识确定每个客户端的身份;

第一发送模块,用于根据所述确定模块确定的所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,所述待调试业务数据用于所述客户端中的集成开发环境IDE进行调试,并得到业务调试数据;

第二接收模块,用于接收所述每个客户端代理发送的所述业务调试数据,所述业务调试数据用于所述服务器进行业务调试。

本发明第五方面提供了一种远程调试的系统,所述系统包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在所述服务器中部署服务器代理;

所述客户端代理向所述服务器代理发送客户端识别标识;

所述服务器代理根据所述客户端识别标识确定每个客户端的身份;

所述服务器代理根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,

所述客户端代理将所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;

所述客户端代理接收所述IDE发送的所述业务调试数据;

所述客户端代理将所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例中,提供了一种远程调试的方法,该方法应用于远程调试的系统,该系统中包括至少一个客户端以及服务器,其中,每个客户端中部署客户端代理,而在服务器中部署服务器代理,每个客户端中部署的户端代理分别向服务器代理发送客户端识别标识,当服务器代理根据客户端识别标识确定客户端身份时,客户端代理接收服务器代理发送的待调试业务数据,待调试业务数据用于客户端中的集成开发环境进行调试,并得到业务调试数据,然后接收集成开发环境发送的业务调试数据,最后将业务调试数据发送至服务器代理,业务调试数据用于服务器进行业务调试。通过上述方式,在客户端与服务器中分别部署代理,由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

附图说明

图1为现有技术中Xdebug远程调试的流程示意图;

图2为本发明实施例中远程调试的系统架构图;

图3为本发明实施例中远程调试的方法一个交互实施例示意图;

图4为本发明实施例中远程调试的方法一个实施例示意图;

图5为本发明实施例中客户端代理的工作流程示意图;

图6为本发明实施例中远程调试的方法另一个实施例示意图;

图7为本发明实施例中服务器代理的工作流程示意图;

图8为应用场景中跨防火墙远程调试的流程示意图;

图9为本发明实施例中客户端代理一个实施例示意图;

图10为本发明实施例中客户端代理另一个实施例示意图;

图11为本发明实施例中客户端代理另一个实施例示意图;

图12为本发明实施例中客户端代理另一个实施例示意图;

图13为本发明实施例中服务器代理一个实施例示意图;

图14为本发明实施例中服务器代理另一个实施例示意图;

图15为本发明实施例中服务器代理另一个实施例示意图;

图16为本发明实施例中服务器代理另一个实施例示意图;

图17为本发明实施例中服务器代理另一个实施例示意图;

图18为本发明实施例中客户端代理一个实施例示意图;

图19为本发明实施例中服务器代理一个实施例示意图;

图20为本发明实施例中远程调试的系统一个实施例示意图。

具体实施方式

本发明实施例提供了一种远程调试的方法、相关设备及系统,可以在客户端与服务器中分别部署代理,由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应理解,本发明应用于远程调试的系统,请参阅图2,图2为本发明实施例中远程调试的系统架构图。如图2所示,远程调试系统中有一台服务器以及多个客户端,其中,图中的5个客户端仅为一个示意,在实际应用中还可能存在其他数量的客户端。

本发明中,客户端可以是安装于个人电脑(英文全称:Personal Computer,英文缩写:PC),或者移动终端中的一个应用程序,移动终端还可以是智能手机、平板电脑或者个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA),此处不做限定。

客户端或称为用户端,是指与服务器相对应,为用户提供本地服务的应用程序。除了一些只在本地运行的应用程序之外,一般安装在普通的用户设备上,需要与服务端互相配合运行。

本方案中所采用的客户端为安装于本地开发机中的客户端,通过该客户端实时监测应用程序的运行,在出现异常时也可以较快的给出回应,还能通过该客户端与服务器之间建立特定的通信连接,并且进行数据调试,由此来保证应用程序的正常运行。本地开发机主要就是用来做各种开发和设置的。

本地开发机中,还具有浏览器和IDE,浏览器是指可以显示网页服务器或者文件系统的超级文本标记语言(英文全称:Hyper Text Markup Language,英文缩写:HTML)文件,并且可以让用户与这些文件进行交互的一种软件。

IDE是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件组都可以叫集成开发环境。

与至少一个客户端保持通信连接的服务器具体可以是PHP服务器,PHP是一种通用开源脚本语言。语法吸收了C语言、Java语音和Perl语音的特点,利于学习,并且使用广泛,主要适用于网站开发领域。PHP是将程序嵌入到HTML文档中去执行。PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。PHP服务器就是利用PHP进行开源的服务器,在PHP服务器中,使用Xdebug可用于PHP调试工作,其中,Xdebug是一个开放源代码的PHP程序调试器,可以用来跟踪、调试和分析PHP程序的运行状况。在PHP服务器中使用Xdebug进行调试也是一种常见的手段。

然而,如果本地开发机与PHP服务器建立通信连接时,若遭遇到本地开发机侧设置的防火墙阻碍时,就无法实现本地开发机的IDE与PHP服务器之间的通信,于是在本方案中,需要在本地开发机与PHP服务器中分布部署一个代理,通过代理之间的通信绕开防火墙的阻碍。代理也称网络代理,是一种特殊的网络服务,允许一个客户端通过这个网络服务与另一个服务器进行非直接的连接。

为了便于理解,请参阅图3,图3为本发明实施例中远程调试的方法一个交互实施例示意图,如图所示,具体为:

步骤201中,部署与客户端中的客户端代理先向部署与服务器中的服务器代理发送客户端识别标识,该客户端识别标识可以被一些特定消息所携带;

步骤202中,服务器代理收到客户端识别标识后,就能够判断出当前需要进行调试的客户端身份,也就是通过客户端识别标识可以识别不同用户的身份,以此还能实现多人并行调试,服务器代理通过客户端识别标识与客户端代理建立通信连接,并实时相互传递数据;

步骤203中,服务器代理与服务器中的Xdebug建立起通信连接,并且实时向Xdebug传递来自客户端的数据,在Xdebug根据客户端所传递的数据进行调试后得到待调试业务数据,然后向客户端代理发送该待调试业务数据;

步骤204中,客户端代理接收到待调试业务数据后,向IDE转发待调试业务数据,IDE开始进行调试,并得到业务调试数据,进而向服务器代理发送业务调试数据;

步骤205中,服务器代理向Xdebug发送业务调试数据,然后通过Xdebug进行业务调试,得到调试后的信息,可以通过客户端识别标识分别向不同的客户端发送调试后的信息。

下面将从客户端代理的角度,对本发明中远程调试的方法进行介绍,请参阅图4,本发明实施例中远程调试的方法一个实施例包括:

301、客户端中部署的客户端代理向服务器代理发送客户端识别标识,客户端应用于远程调试的系统,远程调试的系统中包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在服务器中部署服务器代理;

本实施例中,在远程调试的系统中包括了一台服务器和至少一个客户端,每个客户端中都具有一个客户端代理,而服务器中也具有服务器代理,且不同的客户端代理具有不同的客户端识别标识,服务器代理可以通过该客户端识别标识来识别不同的客户端。

至少一个客户端代理向服务器发送客户端识别标识,客户端识别标识具体可以是服务器代理与客户端代理事先约定好的一个字符串。

302、当服务器代理根据客户端识别标识确定客户端身份时,接收服务器代理发送的待调试业务数据;

本实施例中,服务器代理收到客户端识别标识之后,能够确认客户端的身份,也就是能够确认部署与客户端中的客户端代理身份,接下来与客户端代理之间建立通信连接,并实时接收客户端代理发送的数据。服务器代理将客户端代理发送的数据转发至Xdebug中进行调试,可以得到待调试业务数据,随后,服务器代理将待调试业务数据发送到对应的客户端代理中。

303、将待调试业务数据发送至客户端中的集成开发环境IDE,待调试业务数据用于IDE进行调试,并得到业务调试数据;

本实施例中,客户端代理收到服务器代理发送的待调试业务数据后,向客户端中的IDE发送待调试业务数据,使得IDE对待调试业务数据开始进行调试,得到业务调试数据。

304、接收IDE发送的业务调试数据;

本实施例中,IDE将调试得到的业务调试数据发送回客户端代理。

305、将业务调试数据发送至服务器代理,业务调试数据用于服务器进行业务调试。

本实施例中,调试过程中IDE的业务调试数据通过客户端代理发送到服务器代理,再由服务器代理发送至Xdebug。Xdebug调试后根据客户端识别标识分别下发调试后的业务调试数据给对应的客户端,以此完成远程调试。

本发明实施例中,提供了一种远程调试的方法,在客户端与服务器中分别部署代理。由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

可选地,在上述图4对应的实施例的基础上,本发明实施例提供的远程调试的方法第一个可选实施例中,向服务器代理发送客户端识别标识,可以包括:

通过服务器代理的第一端口向服务器代理发送第一传输控制协议TCP连接请求;

当根据第一TCP连接请求建立数据传输通道时,通过数据传输通道向服务器代理发送客户端识别标识。

本实施例中,客户端代理向服务器代理发送客户端识别标识,还需要提前在客户端代理与服务器代理之前建立通信连接。

具体为,服务器代理被开启后会实时监听是否有请求的接入,而客户端代理与服务器代理均采用第一端口,于是客户端代理通过第一端口向服务器代理的第一端口发送第一传输控制协议(英文全称:Transmission Control Protocol,英文缩写:TCP)连接请求,服务器代理收到第一TCP连接请求后,会响应该请求,然后与客户端代理建立起的TCP数据传输通道,从而可以通过TCP数据传输通道向服务器代理发送客户端识别标识。

其中,第一端口可以为8080端口,8080端口同80端口,是被用于环球信息网代理服务的,可以实现网页浏览。在网页服务器或超文本传输协议的后台程序中,在默认情况下,8080端口是服务器侦听客户端请求的端口。

第一TCP连接请求是一种面向连接的、可靠的并基于字节流的传输层通信协议,TCP为了保证报文传输的可靠,就给每个数据包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的字节发回一个相应的确认;如果发送端实体在合理的往返时延内未收到确认,那么对应的数据将会被重传。

其次,本发明实施例中,客户端代理具体可以通过向服务器代理的第一端口向服务器代理发送第一TCP连接请求,来建立与服务器代理的数据传输通道,并且通过数据传输通道向服务器代理发送客户端识别标识。通过上述方式可以有效地建立起客户端代理与服务器代理之间的连接,避开了防火墙的限制,由此增强了方案的实用性。

可选地,在上述图4对应的实施例的基础上,本发明实施例提供的远程调试的方法第二个可选实施例中,接收IDE发送的业务调试数据之前,还可以包括:

判断是否接收到初始调试请求;

若接收到初始调试请求,则与IDE建立TCP连接通道,并通过TCP连接通道向IDE发送待调试业务数据;

若未接收到初始调试请求,则向IDE透传待调试业务数据。

本实施例中,客户端代理在接收IDE发送业务调试数据之前,还需检测是否接收到服务器代理发出的Xdebug的初始调试请求。

具体为,客户端代理通过正则表达式进行匹配验证,验证当前是否收到Xdebug初始调试请求。如果调试请求与正则表达式的内容匹配时,则确定收到的是Xdebug初始调试请求。于是,客户端代理与IDE建立TCP连接通道,通过该TCP连接通道可以向IDE发送待调试业务数据,IDE可以根据待调试业务数据进行调试。

其中,IDE集成代码编辑、代码生成、界面设计、调试以及编译等功能,目前还融合了建模功能,IDE将这些功能集成在一个桌面环境中,这样就大大方便了用户进行可视化调试。

如果没有收到Xdebug初始调试请求,则直接向IDE透传待调试业务数据,无需IDE对该待调试业务数据进行任何处理。透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理。

需要说明的是,正则表达式可以是match(/<init.*idekey=\”(\w+)\”/),也可以是其他合理的表达式,正则表达式使用单个字符串来描述和匹配一系列符合某个句法规则。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本,此处不对用于检测初始调试请求的正则表达式内容具体限定。

其次,本发明实施例中,说明了若是需要IDE对待调试业务数据进行调试处理,还需要接收初始调试请求,以此可以防止对所有待调试业务数据都进行调试的情况,节省调试和计算资源,只针对服务器侧进行Xdebug调试的数据进行处理。

可选地,在上述图4对应的第二个实施例的基础上,本发明实施例提供的远程调试的方法第三个可选实施例中,与IDE建立TCP连接,并根据TCP连接向IDE发送待调试业务数据,可以包括:

根据初始调试请求,缓存待调试业务数据;

通过IDE的第二端口向IDE发送第二TCP连接请求;

当IDE响应第二TCP连接请求时,向IDE发送待调试业务数据。

本实施例中,在客户端代理与IDE建立TCP连接通道,并通过该TCP连接通道向IDE发送待调试业务数据。

具体为,客户端代理根据接收到的Xdebug初始调试请求,缓存待调试业务数据,也就是将待调试业务数据存放在数据交换的缓冲区,当IDE要读取待调试业务数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。

客户端代理与IDE中都包含了第二端口,于是,客户端代理通过自身的第二端口向IDE的第二端口发送第二TCP连接请求,进而IDE会响应该第二TCP连接请求,并与客户端代理建立起TCP数据连接通道。最后客户端代理可以通过该TCP数据传输通道向IDE发送待调试业务数据。

其中,第二端口可以为9000端口,9000端口为TCP传输的端口。

再次,本发明实施例中,客户端代理可以进一步缓存待调试业务数据,缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行,以此提升方案是使用效率。以外,客户端代理具体可以通过向IDE的第二端口发送第二TCP连接请求,来建立与IDE的数据传输通道,有效地建立起客户端代理与IDE间的连接,增强了方案的实用性。

为便于理解,下面可以以一个具体应用场景对本发明中客户端代理的工作流程过程进行详细描述,请参阅图5,图5为本发明实施例中客户端代理的工作流程示意图,具体为:

步骤401,客户端代理通过自身的8080端口向服务器代理的8080端口发送TCP连接请求;

步骤402,在TCP连接请求成功之后,客户端代理向服务器代理发送注册idekey请求,其中,注册idekey请求可以是proxy init idekey=”myidekey”;

步骤403,在服务器代理收到注册idekey请求后,就可以识别出idekey,并且与对应的客户端代理进行关联,于是客户端代理接收到服务器发送的数据,这些数据可以是待调试业务数据;

步骤404,客户端代理检测当前是否收到Xdebug初始调试请求,检测的方式可以通过正则表达式进行匹配验证,具体为,match(/<init.*idekey=\”(\w+)\”/);

步骤405,如果根据正则表达式进行验证后,确定当前收到的不是Xdebug初始调试请求,于是客户端代理直接向IDE透传待调试业务数据;

步骤406,如果根据正则表达式进行验证后,确定当前收到的是Xdebug初始调试请求,则缓存待调试业务数据,并且客户端代理通过自身的9000端口向IDE的9000端口发起TCP连接请求;

步骤407,当IDE根据TCP连接请求与客户端代理建立连接后,客户端代理向IDE转发缓存的待调试业务数据;

步骤408,IDE收到待调试业务数据后会进行调试,并得到业务调试数据,进而向客户端代理发送业务调试数据,再由客户端代理向服务器代理转发业务调试数据,使服务器代理进行调试。

上述实施例是从客户端代理的角度对本发明中远程调试的方法进行介绍,下面将以服务器代理的角度对本发明中远程调试的方法进行介绍,请参阅图6,本发明实施例中远程调试的方法一个实施例包括:

501、服务器中部署的服务器代理接收至少一个客户端代理发送的客户端识别标识,服务器应用于远程调试的系统,远程调试的系统中包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在服务器中部署服务器代理;

本实施例中,服务器中部署的服务器代理可以接收至少一个客户端代理发送的客户端识别标识,不同的客户端识别标识可以指示不同的客户端。

其中,服务器代理被部署在服务器中,而服务器应用于远程调试的系统,该系统中还包括了至少一个客户端,每个客户端中部署了客户端代理。

502、根据客户端识别标识确定每个客户端的身份;

本实施例中,服务器代理可以根据客户端标识确定出每个客户端的身份,从而也能够识别出收到的数据是来自于哪个客户端代理的,并向还可以向不同的客户端代理发送对应的数据。

503、根据每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,待调试业务数据用于客户端中的集成开发环境IDE进行调试,并得到业务调试数据;

本实施例中,服务器代理根据每个客户端的身份,分别向每个客户端代理发送对应的待调试数据,可能不同的客户端用于调试不同的待调试业务数据,于是客户端代理会转而向客户端中的IDE发送待调试业务数据,由IDE在客户端侧进行调试后得到业务调试数据。

504、接收每个客户端代理发送的业务调试数据,业务调试数据用于服务器进行业务调试。

本实施例中,IDE得到业务调试数据后,先向客户端代理发送业务调试数据,再由各个客户端代理向服务器代理发送业务调试数据,使得服务器侧可以自动进行后续的业务调试。

本发明实施例中,提供了一种远程调试的方法,在客户端与服务器中分别部署代理。由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

可选地,在上述图6对应的实施例的基础上,本发明实施例提供的远程调试的方法第一个可选实施例中,接收至少一个客户端代理发送的客户端识别标识,可以包括:

监听服务器代理的第一端口是否接收到至少一个客户端代理发送的第一传输控制协议TCP连接请求;

若监听到第一TCP连接请求,则接收至少一个客户端代理发送的客户端识别标识。

本实施例中,服务器代理实时监听第一端口有没有收到指示一个客户端代理发出的第一TCP连接请求。客户端代理与服务器代理均采用第一端口,第一端口可以为8080端口,8080端口同80端口,是被用于环球信息网代理服务的,可以实现网页浏览。在网页服务器或超文本传输协议的后台程序中,在默认情况下,8080端口是服务器侦听客户端请求的端口。

在服务器代理监听到第一TCP连接请求之后,就可以接收至少一个客户端代理发送的客户端识别标识。

其次,本发明实施例中,服务器代理具体可以通过监听服务器代理的第一端口,来确定是否接收到至少一个客户端代理发送的第一TCP连接请求,若监听到第一TCP连接请求,则接收至少一个客户端代理发送的客户端识别标识。通过上述方式可以有效地建立起客户端代理与服务器代理之间的连接,避开了防火墙的限制,由此增强了方案的实用性。

可选地,在上述图6对应的实施例的基础上,本发明实施例提供的远程调试的方法第二个可选实施例中,接收至少一个客户端代理发送的客户端识别标识之前,还可以包括:

接收至少一个客户端代理发送的数据处理请求;

若数据处理请求为标识注册请求,则获取第一端口所对应的每个客户端的身份与客户端识别标识的关联关系;

若数据处理请求为数据调试请求,则向服务器中的处理器发送数据调试请求,数据调试请求用于处理器生成待调试业务数据。

本实施例中,服务器先接收至少一个客户端代理发送的数据处理请求,其中不同的客户端代理所发送的数据处理请求内容可能是不一样的。

具体地,有的数据处理请求为标识注册请求,而有的数据处理请求为数据调试请求。服务器需要识别数据处理请求的类型。如果接收到的是标识注册请求,则需要获取服务器的第一端口所对应的每个客户端的身份与客户端识别标识的关联关系。例如,客户端识别标识1对应的是客户端A,客户端识别标识2对应的客户端B,以此类推。得知它们之间的联系后,便能根据该联系之间确定服务器代理与客户端代理之间数据发送的目的地。

若数据处理请求为数据调试请求,那么就可以不用再去建立客户端识别标识与客户端代理之间的关联关系,而是在服务器内部的处理器中生成待调试业务数据,然后直接向对应的客户端代理发送待调试业务数据。

其次,本发明实施例中,服务器可以对接收的数据处理请求进行确定,若数据处理请求为标识注册请求,则获取第一端口所对应的每个客户端的身份与客户端识别标识的关联关系,若数据处理请求为数据调试请求,则向服务器中的处理器发送数据调试请求。通过上述方式,服务器可以更准确地识别客户端侧发送的请求,并作出相应回应,以此提升方案的可行性。

可选地,在上述图6对应的第二个实施例的基础上,本发明实施例提供的远程调试的方法第三个可选实施例中,向服务器中的处理器发送数据调试请求,可以包括:

通过第二端口向处理器的第二端口发送第二TCP连接请求;

当根据第二TCP连接请求建立数据传输通道时,通过数据传输通道向处理器发送数据调试请求。

本实施例中,服务器代理通过自身的第二端口向处理器的第二端口发送第二TCP连接请求,该请求用于服务器内部的服务器代理与处理器建立通信连接。当处理器接收该第二TCP请求连接,并且建立服务器代理与处理器质检的数据传输通道时,即可通过该通道传输数据调试请求。

可以理解的是,服务器代理与处理器之间建立的数据传输通道为TCP传输通道。

再次,本发明实施例中,在服务器中建立服务器代理与处理之间的数据连接通道,以此可以顺利收发数据,保证了方案的可行性,并且提升了方案的可操作性。

可选地,在上述图6以及图6对应的第一至第三个实施例中任一项的基础上,本发明实施例提供的远程调试的方法第三个可选实施例中,根据每个客户端的身份,向每个客户端代理发送对应的待调试业务数据之前,还可以包括:

若检测到初始调试请求,则获取第二端口所对应的每个客户端的身份与客户端识别标识的关联关系。

本实施例中,在服务器中的处理器与服务器代理之间建立了TCP连接后,如果处理器接收到客户端代理发出的Xdebug初始调试请求,则处理器与服务器代理的也建立TCP连接。

Xdebug初始调试请求中携带了Xdebug的标识,例如XDEBUG_SESSION=idekey,或者其他的标识,此处不作限定。

服务器代理收到Xdebug初始调试请求,然后解析该请求后可以通过第二端口与处理器的第二端口建立TCP连接,同时,获取到第二端口所对应的每个客户端的身份与客户端识别标识的关联关系。例如,客户端识别标识1对应的是客户端A,客户端识别标识2对应的客户端B,以此类推。得知它们之间的联系后,便能根据该联系之间确定处理器与服务器代理之间的数据传输目的地。

进一步地,本发明实施例中,服务器在检测到初始调试请求,则获取第二端口所对应的每个客户端的身份与客户端识别标识的关联关系。从而使得服务器内部的服务器代理和处理器之间在进行数据传输时也能准确地识别数据传输的目的地,以此提升方案的可行性。

为便于理解,下面可以以一个具体应用场景对本发明中服务器代理的工作流程过程进行详细描述,请参阅图7,图7为本发明实施例中服务器代理的工作流程示意图,具体为:

步骤601,在客户端代理与服务器代理进行通信连接后,服务器代理可以接收客户端代理发送的数据,该数据的类型可以是用于注册idekey的数据,也可以使直接发出的调试数据;

步骤602,当服务器代理根据接收到的数据类型,判断是否为注册idekey的请求,如果是,则进入步骤603,否则则跳转至步骤604。其中,注册idekey请求可以与客户端代理约定一个字符串即可,如proxy init idekey=”myidekey”,通过正则表达式匹配验证,如match(/proxy init idekey=\”(\w+)\”/);

步骤603,如果是注册idekey的请求,则提取idekey信息并保存到客户端套接字clientSocket数组与socket.idekey属性中。其中,clientSocket数组用于负责接收服务器代理发送的连接请求,socket.idekey属性则是说明数据接收的对象;

步骤604,如果不是注册idekey的请求,则根据socket.idekey属性找到对应的PHP,即服务器中的处理器,直接将调试数据透传至PHP中;

步骤605,PHP接收调试数据,并且经过调试得到业务调试数据;

步骤606,服务器代理检测是否收到Xdebug初始调试请求,同样可以通过正则表达式进行匹配验证,如match(/<init.*idekey=\”(\w+)\”/);

步骤607,如果接收到Xdebug初始调试请求,则提取idekey信息并保存到服务器套接字serverSocket数组与socket.idekey属性中。其中,serverSocket数组用于负责接收客户端代理发送的连接请求,并且可以多线程来处理与多个客户端代理的的通信任务,socket.idekey属性则是指示数据接收对象;

步骤608,如果没有收到Xdebug初始调试请求,则将所有来自PHP的数据均根据socket.idekey属性,找到对应的客户端代理,调试连接后转发业务调试数据。

为便于理解,下面可以以一个具体应用场景对本发明中远程调试的过程进行详细描述,请参阅图8,图8为应用场景中跨防火墙远程调试的流程示意图,具体为:

步骤701,启动服务器代理,开始监听9000端口和8080端口是否收到TCP连接请求;

步骤702,启动开发机代理,向服务器代理的8080端口发起TCP连接请求,连接成功后开发机代理发送注册idekey请求,服务器代理识别出idekey的信息并与当前TCP连接关联,并且实时传输数据;

步骤703,本地开发机的IDE开始监听9000端口的TCP连接请求;

步骤704,本地开发机通过浏览器访问待调试的php请求,并带上Xdebug标识(XDEBUG_SESSION=idekey);

步骤705,PHP服务器收到请求后,PHP向服务器代理的9000端口发起TCP连接请求,连接成功后PHP发送Xdebug初始调试请求,服务器代理识别出idekey并当前TCP连接关联,同时可以根据idekey找到开发机代理对应的TCP连接,并向开发机代理转发来自PHP的调试数据;

步骤706,开发机代理识别到Xdebug初始调试请求,向IDE的9000端口发起TCP连接请求,连接成功后向IDE转发来自服务器代理的调试数据;

步骤707,IDE收到开发机代理的Xdebug初始调试请求,开始进行调试,调试过程中IDE的请求通过开发机代理转发到服务器代理,再由服务器代理转发到PHP,服务器代理通过idekey识别不同用户可以实现多人并行调试。

下面对本发明中的客户端代理进行详细描述,请参阅图9,本发明实施例中的客户端代理部署于客户端,所述客户端应用于远程调试的系统,所述系统还包括服务器,所述服务器中部署服务器代理,所述客户端代理包括:

第一发送模块801,用于向所述服务器代理发送客户端识别标识;

第一接收模块802,用于当所述服务器代理根据所述第一发送模块801发送的所述客户端识别标识确定客户端身份时,接收所述服务器代理发送的待调试业务数据;

第二发送模块803,用于将所述第一接收模块802接收的所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;

第二接收模块804,用于接收所述IDE发送的所述业务调试数据;

第三发送模块805,用于将所述第二接收模块804接收的所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。

本实施例中,第一发送模块801向所述服务器代理发送客户端识别标识,当所述服务器代理根据所述第一发送模块发送的所述客户端识别标识确定客户端身份时,第一接收模块802接收所述服务器代理发送的待调试业务数据;第二发送模块803,用于将所述第一接收模块接收的所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据,第二接收模块804接收所述IDE发送的所述业务调试数据,第三发送模块805将所述第二接收模块接收的所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。

本发明实施例中,提供了一种远程调试的方法,在客户端与服务器中分别部署代理。由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

可选地,在上述图9所对应的实施例的基础上,请参阅图10,本发明实施例提供的客户端代理的另一实施例中,

所述第一发送模块801包括:

第一发送单元8011,用于通过所述服务器代理的第一端口向所述服务器代理发送第一传输控制协议TCP连接请求;

第二发送单元8012,用于当根据所述第一发送单元8011发送的所述第一TCP连接请求建立数据传输通道时,通过所述数据传输通道向所述服务器代理发送所述客户端识别标识。

其次,本发明实施例中,客户端代理具体可以通过向服务器代理的第一端口向服务器代理发送第一TCP连接请求,来建立与服务器代理的数据传输通道,并且通过数据传输通道向服务器代理发送客户端识别标识。通过上述方式可以有效地建立起客户端代理与服务器代理之间的连接,避开了防火墙的限制,由此增强了方案的实用性。

可选地,在上述图9所对应的实施例的基础上,请参阅图11,本发明实施例提供的客户端代理的另一实施例中,

所述客户端代理80还包括:

判断模块806,用于所述第二接收模块804接收所述IDE发送的所述业务调试数据之前,判断是否接收到初始调试请求;

建立模块807,用于若所述判断模块806判断得到接收到所述初始调试请求,则与所述IDE建立TCP连接通道,并通过所述TCP连接通道向所述IDE发送所述待调试业务数据;

透传模块808,用于若所述判断模块806判断得到未接收到所述初始调试请求,则向所述IDE透传所述待调试业务数据。

其次,本发明实施例中,说明了若是需要IDE对待调试业务数据进行调试处理,还需要接收初始调试请求,以此可以防止对所有待调试业务数据都进行调试的情况,节省调试和计算资源,只针对服务器侧进行Xdebug调试的数据进行处理。

可选地,在上述图11所对应的实施例的基础上,请参阅图12,本发明实施例提供的客户端代理的另一实施例中,

所述建立模块807包括:

缓存单元8071,用于根据所述初始调试请求,缓存所述待调试业务数据;

第三发送单元8072,用于通过所述IDE代理的第二端口向所述IDE发送第二TCP连接请求;

第四发送单元8073,用于当所述IDE响应所述第三发送单元8072发送的所述第二TCP连接请求时,向所述IDE发送所述缓存单元8071缓存的所述待调试业务数据。

再次,本发明实施例中,客户端代理可以进一步缓存待调试业务数据,缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行,以此提升方案是使用效率。以外,客户端代理具体可以通过向IDE的第二端口发送第二TCP连接请求,来建立与IDE的数据传输通道,有效地建立起客户端代理与IDE间的连接,增强了方案的实用性。

上面对本发明中的服务器代理进行介绍,下面将对本发明中的客户端代理进行详细描述,请参阅图13,本发明实施例中的服务器代理部署于服务器,所述服务器应用于远程调试的系统,所述系统还包括至少一个客户端,在每个客户端中部署客户端代理,所述服务器代理包括:

第一接收模块901,用于接收至少一个客户端代理发送的客户端识别标识;

确定模块902,用于根据所述第一接收模块901接收的所述客户端识别标识确定每个客户端的身份;

第一发送模块903,用于根据所述确定模块902确定的所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,所述待调试业务数据用于所述客户端中的集成开发环境IDE进行调试,并得到业务调试数据;

第二接收模块904,用于接收所述每个客户端代理发送的所述业务调试数据,所述业务调试数据用于所述服务器进行业务调试。

本实施例中,第一接收模块901接收至少一个客户端代理发送的客户端识别标识,确定模块902根据所述第一接收模块901接收的所述客户端识别标识确定每个客户端的身份,第一发送模块903根据所述确定模块902确定的所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,所述待调试业务数据用于所述客户端中的集成开发环境IDE进行调试,并得到业务调试数据,第二接收模块904,用于接收所述每个客户端代理发送的所述业务调试数据,所述业务调试数据用于所述服务器进行业务调试。

本发明实施例中,提供了一种远程调试的方法,在客户端与服务器中分别部署代理。由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

可选地,在上述图13所对应的实施例的基础上,请参阅图14,本发明实施例提供的客户端代理的另一实施例中,

所述第一接收模块901包括:

监听单元9011,用于监听所述服务器代理的第一端口是否接收到所述至少一个客户端代理发送的第一传输控制协议TCP连接请求;

接收单元9012,用于若所述监听单元9011监听到所述第一TCP连接请求,则接收所述至少一个客户端代理发送的所述客户端识别标识。

其次,本发明实施例中,服务器代理具体可以通过监听服务器代理的第一端口,来确定是否接收到至少一个客户端代理发送的第一TCP连接请求,若监听到第一TCP连接请求,则接收至少一个客户端代理发送的客户端识别标识。通过上述方式可以有效地建立起客户端代理与服务器代理之间的连接,避开了防火墙的限制,由此增强了方案的实用性。

可选地,在上述图13所对应的实施例的基础上,请参阅图15,本发明实施例提供的客户端代理的另一实施例中,

所述服务器代理90还包括:

第三接收模块905,用于所述第一接收模块901接收至少一个客户端代理发送的客户端识别标识之前,接收所述至少一个客户端代理发送的数据处理请求;

第一获取模块906,用于若所述第三接收模块905接收到的所述数据处理请求为标识注册请求,则获取所述第一端口所对应的所述每个客户端的身份与所述客户端识别标识的关联关系;

第二发送模块907,用于若所述第三接收模块905接收到的所述数据处理请求为数据调试请求,则向所述服务器中的处理器发送数据调试请求,所述数据调试请求用于所述处理器生成所述待调试业务数据。

其次,本发明实施例中,服务器可以对接收的数据处理请求进行确定,若数据处理请求为标识注册请求,则获取第一端口所对应的每个客户端的身份与客户端识别标识的关联关系,若数据处理请求为数据调试请求,则向服务器中的处理器发送数据调试请求。通过上述方式,服务器可以更准确地识别客户端侧发送的请求,并作出相应回应,以此提升方案的可行性。

可选地,在上述图15所对应的实施例的基础上,请参阅图16,本发明实施例提供的客户端代理的另一实施例中,

所述第二发送模块907还包括:

第一发送单元9071,用于通过第二端口向所述处理器的第二端口发送第二TCP连接请求;

第二发送单元9072,用于当根据所述第一发送单元9071发送的所述第二TCP连接请求建立数据传输通道时,通过所述数据传输通道向所述处理器发送数据调试请求。

再次,本发明实施例中,在服务器中建立服务器代理与处理之间的数据连接通道,以此可以顺利收发数据,保证了方案的可行性,并且提升了方案的可操作性。

可选地,在上述图13至16中任一项所对应的实施例的基础上,请参阅图17,本发明实施例提供的客户端代理的另一实施例中,

所述服务器代理90还包括:

第二获取模块908,用于所述第一发送模块903根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据之前,若检测到初始调试请求,则获取所述第二端口所对应的所述每个客户端的身份与所述客户端识别标识的关联关系。

进一步地,本发明实施例中,服务器在检测到初始调试请求,则获取第二端口所对应的每个客户端的身份与客户端识别标识的关联关系。从而使得服务器内部的服务器代理和处理器之间在进行数据传输时也能准确地识别数据传输的目的地,以此提升方案的可行性。

本发明实施例还提供了另一种客户端,其中,客户端代理中包括了客户端代理,如图18所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)、销售终端(英文全称:Point of Sales,英文缩写:POS)、车载电脑等任意终端设备,以终端为手机为例:

图18示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图18,手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文全称:wireless fidelity,英文缩写:WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图18中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图18对手机的各个构成部件进行具体的介绍:

RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:Low Noise Amplifier,英文缩写:LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:Global System of Mobile communication,英文缩写:GSM)、通用分组无线服务(英文全称:General Packet Radio Service,英文缩写:GPRS)、码分多址(英文全称:Code Division Multiple Access,英文缩写:CDMA)、宽带码分多址(英文全称:Wideband Code Division Multiple Access,英文缩写:WCDMA)、长期演进(英文全称:Long Term Evolution,英文缩写:LTE)、电子邮件、短消息服务(英文全称:Short Messaging Service,英文缩写:SMS)等。

存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(英文全称:Liquid Crystal Display,英文缩写:LCD)、有机发光二极管(英文全称:Organic Light-Emitting Diode,英文缩写:OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图18中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。

手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。

WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图18示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。

手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。

在本发明实施例中,该终端所包括的处理器1080还具有以下功能:

向所述服务器代理发送客户端识别标识;

当所述服务器代理根据所述客户端识别标识确定客户端身份时,接收所述服务器代理发送的待调试业务数据;

将所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;

接收所述IDE发送的所述业务调试数据;

将所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。

图19是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,服务器1100中包括了一个服务器代理。还可以包括一个或一个以上中央处理器(英文全称:central processing units,英文缩写:CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。

服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述实施例中由服务器所执行的步骤可以基于该图19所示的服务器结构。

接收至少一个客户端代理发送的客户端识别标识;

根据所述客户端识别标识确定每个客户端的身份;

根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,所述待调试业务数据用于所述客户端中的集成开发环境IDE进行调试,并得到业务调试数据;

接收所述每个客户端代理发送的所述业务调试数据,所述业务调试数据用于所述服务器进行业务调试。

请参阅图20,图20为本发明实施例中远程调试的系统一个实施例示意图,所述系统包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理1201,在所述服务器中部署服务器代理1202;

所述客户端代理1201向所述服务器代理1202发送客户端识别标识;

所述服务器代理1202根据所述客户端识别标识确定每个客户端的身份;

所述服务器代理1202根据所述每个客户端的身份,向每个客户端代理1201发送对应的待调试业务数据,

所述客户端代理1201将所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;

所述客户端代理1201接收所述IDE发送的所述业务调试数据;

所述客户端代理1201将所述业务调试数据发送至所述服务器代理1202,所述业务调试数据用于所述服务器进行业务调试。

本发明实施例中,提供了一种远程调试的方法,在客户端与服务器中分别部署代理。由于是客户端代理主动向服务器代理发送客户端识别标识,从而绕开了客户端侧的防火墙限制,从而实现在防火墙安全策略限制的情况下仍可以进行远程调试。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-Only Memory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

完整全部详细技术资料下载
当前第1页 1  2  3 
相关技术
  • 消息推送系统及方法与流程
  • 一种网络附属存储设备与方法与...
  • 一种建立TCP通信连接的方法...
  • 一种资源的安全下载方法及装置...
  • 一卡通状态信息管理系统的制作...
  • 一种文件处理方法和装置、以及...
  • 一种多路径数据传输的控制方法...
  • 基于云计算的全移动化监管控系...
  • 空调机组的通讯方法及装置与流...
  • 一种通过终端进行鸣笛的方法和...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
设备安装调试验收单相关技术
  • 拍摄设备安装装置的制造方法
  • 有效确保通信设备安装环境温度适宜的降温去湿装置的制造方法
  • 设备安装助力器的制作方法
  • 旋转式设备安装支架的制作方法
  • 屏蔽设备以及将屏蔽设备安装到基板的方法
  • 一种易于调试的小型高频介质加热设备的制作方法
  • 用于在计算机系统中安装设备的设备安装轨道的制作方法
  • 一种可视对讲系统调试设备的制作方法
  • 一种用于单频网调试的设备和方法
  • Wlan设备安装架的制作方法
设备调试相关技术
  • 信息提示方法及电子设备与流程
  • 一种单点红外全景监测电气设备的方法及系统与流程
  • 一种调试电路、调试装置、调试系统和一种电子设备的制造方法
  • 视频会议设备的制造方法与工艺
  • 一种ACK/NACK反馈方法及相关设备与流程
  • 不平衡型三相共体一次通流升压试验变压器的制造方法与工艺
  • 电子设备及枢接装置的制造方法
  • 音频播放方法及电子设备与流程
  • 回转设备用机械式自动调位托轮支承装置的制造方法
  • 一种直线型输送线装置的制造方法
网络设备调试员相关技术
  • 光开关调试设备的制作方法
  • 基于移动设备和互联网的燃气汽车调试系统及方法
  • 光开关调试设备的制作方法
  • 一种计算机网络的安全设备的制作方法
  • 一种网络系统的调试方法
  • 证书鉴别方法和设备的制作方法
  • 一种计算机网络电话及市话电话用切换设备的制作方法
  • 用于程序开发调试的计算机网络插头的制作方法
  • 通过蜂窝网络的设备的安全证书登记的制作方法
  • 一种调试方法和设备的制作方法
设备安装调试方案相关技术
  • 一种定日镜现场调试仪的制作方法
  • 设备上架安装仪的制作方法
  • 矿用仪器无线调试笔的制作方法
  • 网络摄像机调试仪的制作方法
  • 一种电子设备调试仪的制作方法
  • 用于调试网络的节点的方法和设备的制作方法
  • 一种用于单频网调试的设备和方法
  • 光开关调试设备的制作方法
  • 基于移动设备和互联网的燃气汽车调试系统及方法
  • 光开关调试设备的制作方法
设备调试报告模板相关技术
  • 电气设备电源线存放模件的制作方法
  • 电子电气设备用预涂层金属板的制作方法
  • 金属板局部调直设备的制作方法
  • 电气设备三箱驱潮及驱虫板的制作方法
网络设备安装与调试相关技术
  • 网络设备阵列的远程调试的制作方法
  • 网络设备的制作方法
  • 网络设备的制作方法
  • 网络设备的制作方法
  • 网络设备的制作方法
  • 网络设备的制作方法
  • 网络设备的制作方法
  • 网络设备的制作方法
  • 网络设备的制作方法
  • 表项的安装方法和装置以及网络设备的制作方法

PHP网站源码金昌模板制作报价张掖网站优化按天计费兰州百姓网标王推荐大理百度关键词包年推广公司福永网站改版推荐南澳seo优化哪家好潮州模板制作内江网站制作设计推荐台州外贸网站建设价格吕梁关键词排名包年推广报价安阳网站优化软件公司百色百度网站优化价格龙岗网站建设设计哪家好迁安模板制作公司郑州百姓网标王推广价格福田网站搜索优化价格福田seo优化报价平湖设计公司网站价格宝鸡网站改版报价廊坊百度关键词包年推广多少钱周口网站改版哪家好铜仁关键词排名包年推广苏州网站改版价格淄博网站优化推广报价淮安企业网站设计多少钱山南网站制作设计公司大理关键词按天扣费价格银川网站seo优化报价宣城网络营销公司盐城百度网站优化排名公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化