CN106254436B - 一种远程调试的方法、相关设备及系统 - Google Patents

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

Info

Publication number
CN106254436B
CN106254436B CN201610606141.7A CN201610606141A CN106254436B CN 106254436 B CN106254436 B CN 106254436B CN 201610606141 A CN201610606141 A CN 201610606141A CN 106254436 B CN106254436 B CN 106254436B
Authority
CN
China
Prior art keywords
client
server
data
debugging
agent
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
Application number
CN201610606141.7A
Other languages
English (en)
Other versions
CN106254436A (zh
Inventor
朱春林
陈和
马绍春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610606141.7A priority Critical patent/CN106254436B/zh
Publication of CN106254436A publication Critical patent/CN106254436A/zh
Application granted granted Critical
Publication of CN106254436B publication Critical patent/CN106254436B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种远程调试的方法、相关设备及系统
技术领域
本发明涉及网络技术领域,尤其涉及一种远程调试的方法、相关设备及系统。
背景技术
对于超文本预处理器(英文全称:Hypertext Preprocessor,英文缩写:PHP)的程序而言,本地开发机需要随时随地访问PHP,并通过跟踪、调试和分析来确定其运行状况,以此来进行远程设备调试和程序的更新。
现有方案中,可以采用开放源代码的PHP程序调试器Xdebug进行远程调试,请参阅图1,图1为现有技术中Xdebug远程调试的流程示意图,下面将简单介绍采用Xdebug远程调试的方法:
第一步,本地开发机的集成开发环境(英文全称:Integrated DevelopmentEnvironment,英文缩写:IDE)开始监听9000端口的传输控制协议(英文全称:TransmissionControl 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、无线保真(英文全称:wirelessfidelity,英文缩写:WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图18中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图18对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:LowNoise 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)、长期演进(英文全称:LongTerm Evolution,英文缩写:LTE)、电子邮件、短消息服务(英文全称:Short MessagingService,英文缩写: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-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (18)

1.一种远程调试的方法,其特征在于,所述方法应用于远程调试的系统,所述系统中包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在所述服务器中部署服务器代理,所述服务器代理被开启后会实时监听是否有请求的接入,并与所述服务器中的Xdebug建立通信连接,并实时向Xdebug传递来自所述客户端的数据;针对所述每个客户端中部署的所述客户端代理,所述方法包括:
通过所述服务器代理的第一端口向所述服务器代理发送第一传输控制协议TCP连接请求;
当根据所述第一TCP连接请求建立与所述服务器代理之间的数据传输通道时,通过所述数据传输通道向所述服务器代理发送客户端识别标识;
当所述服务器代理根据所述客户端识别标识确定客户端身份时,接收所述服务器代理发送的待调试业务数据;
通过正则表达式进行匹配验证,验证当前是否接收到服务器代理发出的Xdebug的初始调试请求;
若接收到所述初始调试请求,则与所述客户端中的集成开发环境IDE建立TCP连接通道,并通过所述TCP连接通道向所述IDE发送所述待调试业务数据,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;
接收所述IDE发送的所述业务调试数据;
将所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。
2.根据权利要求1所述的方法,其特征在于,所述接收所述IDE发送的所述业务调试数据之前,所述方法还包括:
若未接收到所述初始调试请求,则向所述IDE转发所述待调试业务数据。
3.根据权利要求2所述的方法,其特征在于,所述与所述IDE建立TCP连接,并根据所述TCP连接向所述IDE发送所述待调试业务数据,包括:
根据所述初始调试请求,缓存所述待调试业务数据;
通过所述IDE的第二端口向所述IDE发送第二TCP连接请求;
当所述IDE响应所述第二TCP连接请求时,向所述IDE发送所述待调试业务数据。
4.一种远程调试的方法,其特征在于,所述方法应用于远程调试的系统,所述系统中包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在所述服务器中部署服务器代理,所述服务器代理被开启后会实时监听是否有请求的接入,并与所述服务器中的Xdebug建立通信连接,并实时向Xdebug传递来自所述客户端的数据;所述方法包括:
监听所述服务器代理的第一端口是否接收到所述至少一个客户端代理发送的第一传输控制协议TCP连接请求;
若监听到所述第一TCP连接请求,则响应于所述第一TCP连接请求建立与所述客户端代理之间的数据传输通道,并通过所述数据传输通道接收所述至少一个客户端代理发送的客户端识别标识;
根据所述客户端识别标识确定每个客户端的身份;
根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据;
向所述每个客户端发送Xdebug的初始调试请求,以使所述客户端代理与所述客户端中的集成开发环境IDE建立TCP连接通道,并通过所述TCP连接通道向所述IDE发送所述待调试业务数据;所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;
接收所述每个客户端代理发送的所述业务调试数据,所述业务调试数据用于所述服务器进行业务调试。
5.根据权利要求4所述的方法,其特征在于,所述接收至少一个客户端代理发送的客户端识别标识之前,所述方法还包括:
接收所述至少一个客户端代理发送的数据处理请求;
若所述数据处理请求为标识注册请求,则获取所述第一端口所对应的所述每个客户端的身份与所述客户端识别标识的关联关系;
若所述数据处理请求为数据调试请求,则向所述服务器中的处理器发送数据调试请求,所述数据调试请求用于所述处理器生成所述待调试业务数据。
6.根据权利要求5所述的方法,其特征在于,所述向所述服务器中的处理器发送数据调试请求,包括:
通过第二端口向所述处理器的第二端口发送第二TCP连接请求;
当根据所述第二TCP连接请求建立数据传输通道时,通过所述数据传输通道向所述处理器发送数据调试请求。
7.根据权利要求4至6中任一项所述的方法,其特征在于,所述根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据之前,所述方法还包括:
若检测到初始调试请求,则获取所述第二端口所对应的所述每个客户端的身份与所述客户端识别标识的关联关系。
8.一种客户端代理,其特征在于,所述客户端代理部署于客户端,所述客户端应用于远程调试的系统,所述系统还包括服务器,所述服务器中部署服务器代理,所述服务器代理被开启后会实时监听是否有请求的接入,并与所述服务器中的Xdebug建立通信连接,并实时向Xdebug传递来自所述客户端的数据;所述客户端代理包括:
第一发送模块,用于向所述服务器代理发送客户端识别标识;
第一接收模块,用于当所述服务器代理根据所述第一发送模块发送的所述客户端识别标识确定客户端身份时,接收所述服务器代理发送的待调试业务数据;
第二发送模块,用于将所述第一接收模块接收的所述待调试业务数据发送至所述客户端中的集成开发环境IDE,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;
第二接收模块,用于接收所述IDE发送的所述业务调试数据;
第三发送模块,用于将所述第二接收模块接收的所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试;
所述第一发送模块包括:
第一发送单元,用于通过所述服务器代理的第一端口向所述服务器代理发送第一传输控制协议TCP连接请求;
第二发送单元,用于当根据所述第一发送单元发送的所述第一TCP连接请求建立数据传输通道时,通过所述数据传输通道向所述服务器代理发送所述客户端识别标识;
判断模块,用于所述第二接收模块接收所述IDE发送的所述业务调试数据之前,通过正则表达式进行匹配验证,验证当前是否接收到服务器代理发出的Xdebug的初始调试请求;
建立模块,用于若所述判断模块判断得到接收到所述初始调试请求,则与所述IDE建立TCP连接通道,并通过所述TCP连接通道向所述IDE发送所述待调试业务数据。
9.根据权利要求8所述的客户端代理,其特征在于,所述客户端代理还包括:
透传模块,用于若所述判断模块判断得到未接收到所述初始调试请求,则向所述IDE透传所述待调试业务数据。
10.根据权利要求9所述的客户端代理,其特征在于,所述建立模块包括:
缓存单元,用于根据所述初始调试请求,缓存所述待调试业务数据;
第三发送单元,用于通过所述IDE的第二端口向所述IDE发送第二TCP连接请求;
第四发送单元,用于当所述IDE响应所述第三发送单元发送的所述第二TCP连接请求时,向所述IDE发送所述缓存单元缓存的所述待调试业务数据。
11.一种服务器代理,其特征在于,所述服务器代理部署于服务器,所述服务器应用于远程调试的系统,所述系统还包括至少一个客户端,在每个客户端中部署客户端代理,所述服务器代理被开启后会实时监听是否有请求的接入,并与所述服务器中的Xdebug建立通信连接,并实时向Xdebug传递来自所述客户端的数据;所述服务器代理包括:
第一接收模块,用于接收至少一个客户端代理发送的客户端识别标识;
确定模块,用于根据所述第一接收模块接收的所述客户端识别标识确定每个客户端的身份;
第一发送模块,用于根据所述确定模块确定的所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据;向所述每个客户端发送Xdebug的初始调试请求,以使所述客户端代理与所述客户端中的集成开发环境IDE建立TCP连接通道,并通过所述TCP连接通道向所述IDE发送所述待调试业务数据;所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;
第二接收模块,用于接收所述每个客户端代理发送的所述业务调试数据,所述业务调试数据用于所述服务器进行业务调试;
所述第一接收模块包括:
监听单元,用于监听所述服务器代理的第一端口是否接收到所述至少一个客户端代理发送的第一传输控制协议TCP连接请求;
接收单元,用于若所述监听单元监听到所述第一TCP连接请求,则接收所述至少一个客户端代理发送的所述客户端识别标识。
12.根据权利要求11所述的服务器代理,其特征在于,所述服务器代理还包括:
第三接收模块,用于所述第一接收模块接收至少一个客户端代理发送的客户端识别标识之前,接收所述至少一个客户端代理发送的数据处理请求;
第一获取模块,用于若所述第三接收模块接收到的所述数据处理请求为标识注册请求,则获取所述第一端口所对应的所述每个客户端的身份与所述客户端识别标识的关联关系;
第二发送模块,用于若所述第三接收模块接收到的所述数据处理请求为数据调试请求,则向所述服务器中的处理器发送数据调试请求,所述数据调试请求用于所述处理器生成所述待调试业务数据。
13.根据权利要求12所述的服务器代理,其特征在于,所述第二发送模块还包括:
第一发送单元,用于通过第二端口向所述处理器的第二端口发送第二TCP连接请求;
第二发送单元,用于当根据所述第一发送单元发送的所述第二TCP连接请求建立数据传输通道时,通过所述数据传输通道向所述处理器发送数据调试请求。
14.根据权利要求11至13中任一项所述的服务器代理,其特征在于,所述服务器代理还包括:
第二获取模块,用于所述第一发送模块根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据之前,若检测到初始调试请求,则获取所述第二端口所对应的所述每个客户端的身份与所述客户端识别标识的关联关系。
15.一种远程调试的系统,其特征在于,所述系统包括至少一个客户端以及服务器,其中,在每个客户端中部署客户端代理,在所述服务器中部署服务器代理;所述服务器代理被开启后会实时监听是否有请求的接入,并与所述服务器中的Xdebug建立通信连接,并实时向Xdebug传递来自所述客户端的数据;
所述客户端代理通过所述服务器代理的第一端口向所述服务器代理发送第一传输控制协议TCP连接请求;当根据所述第一TCP连接请求建立与所述服务器代理之间的数据传输通道时,通过所述数据传输通道向所述服务器代理发送客户端识别标识;
所述服务器代理根据所述客户端识别标识确定每个客户端的身份;
所述服务器代理根据所述每个客户端的身份,向每个客户端代理发送对应的待调试业务数据,
所述客户端代理通过正则表达式进行匹配验证,验证当前是否接收到服务器代理发出的Xdebug的初始调试请求;若接收到所述初始调试请求,则与所述客户端中的集成开发环境IDE建立TCP连接通道,并通过所述TCP连接通道向所述IDE发送所述待调试业务数据,所述待调试业务数据用于所述IDE进行调试,并得到业务调试数据;
所述客户端代理接收所述IDE发送的所述业务调试数据;
所述客户端代理将所述业务调试数据发送至所述服务器代理,所述业务调试数据用于所述服务器进行业务调试。
16.一种客户端,其特征在于,包括第一处理器与第一存储器;
所述第一存储器用于存储软件程序以及模块;
所述第一处理器用于通过运行存储在所述第一存储器的软件程序以及模块,执行如权利要求1至3任一项所述的远程调试的方法。
17.一种服务器,其特征在于,包括第二处理器与第二存储器;
所述第二存储器用于存储软件程序以及模块;
所述第二处理器用于通过运行存储在所述第二存储器的软件程序以及模块,执行如权利要求4至7任一项所述的远程调试的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,所述指令用于使计算机设备执行如权利要求1至3任一项所述的远程调试的方法,或执行如权利要求4至7任一项所述的远程调试的方法。
CN201610606141.7A 2016-07-28 2016-07-28 一种远程调试的方法、相关设备及系统 Active CN106254436B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610606141.7A CN106254436B (zh) 2016-07-28 2016-07-28 一种远程调试的方法、相关设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610606141.7A CN106254436B (zh) 2016-07-28 2016-07-28 一种远程调试的方法、相关设备及系统

Publications (2)

Publication Number Publication Date
CN106254436A CN106254436A (zh) 2016-12-21
CN106254436B true CN106254436B (zh) 2020-02-11

Family

ID=57604849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610606141.7A Active CN106254436B (zh) 2016-07-28 2016-07-28 一种远程调试的方法、相关设备及系统

Country Status (1)

Country Link
CN (1) CN106254436B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259430A (zh) * 2016-12-29 2018-07-06 航天信息股份有限公司 一种基于安全通讯方式的设备远程调试方法及系统
CN108270819B (zh) * 2016-12-30 2021-12-21 上海擎感智能科技有限公司 移动设备的远程调试方法、服务器及系统
CN108734033B (zh) * 2017-04-14 2020-12-22 北京京东尚科信息技术有限公司 一种实现系统间安全交互的方法和装置
CN109213674B (zh) * 2017-07-07 2022-04-08 博彦科技股份有限公司 测试系统、方法、存储介质和处理器
CN109525628B (zh) * 2017-09-20 2021-09-07 北京国双科技有限公司 Http请求调试方法、装置和系统
CN107819846B (zh) * 2017-11-07 2022-01-07 北京三快在线科技有限公司 一种远程连接方法及装置
CN109388569B (zh) * 2018-10-08 2022-03-25 金蝶软件(中国)有限公司 远程检测客户端环境异常的方法、测试服务器及存储介质
CN109756474B (zh) * 2018-11-23 2021-02-05 国电南瑞科技股份有限公司 一种电力调度自动化系统的服务跨区域调用方法及装置
CN111176986B (zh) * 2019-12-16 2023-12-29 金蝶软件(中国)有限公司 线程脚本调试方法、装置、计算机设备和存储介质
CN113094253A (zh) * 2019-12-23 2021-07-09 华为机器有限公司 一种设备调测方法及装置
CN111405028B (zh) * 2020-03-12 2022-05-27 中国建设银行股份有限公司 信息处理方法、装置、服务器、电子设备和介质
CN111740859B (zh) * 2020-06-12 2022-09-13 百度在线网络技术(北京)有限公司 一种测试环境的部署方法、装置、电子设备及存储介质
CN111782525B (zh) * 2020-06-30 2023-08-22 中国工商银行股份有限公司 Java方法远程调试方法及装置
CN111970364A (zh) * 2020-08-17 2020-11-20 创新奇智(重庆)科技有限公司 硬件调试执行方法、装置、电子设备及存储介质
CN111966381A (zh) * 2020-08-24 2020-11-20 宝牧科技(天津)有限公司 一种轻量的业务终端健康检测系统及方法
CN112860362B (zh) * 2021-02-05 2022-10-04 达而观数据(成都)有限公司 一种机器人自动化流程的可视化调试方法及调试系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387982A (zh) * 2008-09-18 2009-03-18 浙江大学 嵌入式远程调试代理的kdwp端通讯连接管理器的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216257B2 (en) * 2004-01-21 2007-05-08 Sap Ag Remote debugging
US7748033B2 (en) * 2005-02-25 2010-06-29 Microsoft Corporation Windows remote debugger service
US9251039B2 (en) * 2012-02-17 2016-02-02 Microsoft Technology Licensing, Llc Remote debugging as a service
CN102594914B (zh) * 2012-03-15 2014-09-17 广州亦云信息技术有限公司 一种基于云平台的远程调试方法
CN103856361B (zh) * 2012-11-29 2017-10-10 腾讯科技(深圳)有限公司 实现远程调试的方法及系统
CN103973741B (zh) * 2013-01-31 2018-02-09 国际商业机器公司 用于在云系统中进行远程调试的方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101387982A (zh) * 2008-09-18 2009-03-18 浙江大学 嵌入式远程调试代理的kdwp端通讯连接管理器的方法

Also Published As

Publication number Publication date
CN106254436A (zh) 2016-12-21

Similar Documents

Publication Publication Date Title
CN106254436B (zh) 一种远程调试的方法、相关设备及系统
CN106970790B (zh) 一种应用程序创建的方法、相关设备及系统
CN109117361B (zh) 一种小程序的远程调试方法、相关设备及系统
US10959124B2 (en) Uplink data transmission method, terminal, network side device and system
US9843616B2 (en) Method, apparatus and system for sharing webpage
CN109905380B (zh) 一种分布式系统中的节点控制方法和相关装置
CN104636664B (zh) 基于文档对象模型的跨站脚本攻击漏洞检测方法及装置
CN104298666B (zh) 网页分享方法和装置
CN110716850B (zh) 页面测试方法、装置、系统及存储介质
CN107135128B (zh) 调用链数据采集方法、移动终端及计算机可读存储介质
US10956653B2 (en) Method and apparatus for displaying page and a computer storage medium
CN104065693A (zh) 一种网页应用中网络数据的访问方法、装置和系统
CN104133728A (zh) 一种进程间通讯的方法、及装置
CN105740145A (zh) 定位控件中的元素的方法及装置
CN108347460B (zh) 资源访问方法及装置
CN104391629A (zh) 定向发送消息的方法、显示消息的方法、服务器及终端
CN105025064B (zh) 下载文件的方法、装置及系统
CN104092657A (zh) 信息传输的方法、设备及系统
WO2017000495A1 (zh) 一种添加联系人的方法及设备
CN107317828A (zh) 文件下载方法及装置
CN107786423B (zh) 一种即时通讯的方法和系统
CN111177612B (zh) 一种页面登录鉴权的方法及相关装置
CN105703808A (zh) 一种传输数据的方法和装置
CN104580251B (zh) 一种进行授权快速登录的方法和装置
CN106371948B (zh) 一种数据备份方法及终端设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant