CN106844062A - 一种在C++与Python模块间实现实时双向协助的通信方法 - Google Patents

一种在C++与Python模块间实现实时双向协助的通信方法 Download PDF

Info

Publication number
CN106844062A
CN106844062A CN201611202438.3A CN201611202438A CN106844062A CN 106844062 A CN106844062 A CN 106844062A CN 201611202438 A CN201611202438 A CN 201611202438A CN 106844062 A CN106844062 A CN 106844062A
Authority
CN
China
Prior art keywords
modules
python
socket
service
function
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
Application number
CN201611202438.3A
Other languages
English (en)
Other versions
CN106844062B (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.)
South China Normal University
Original Assignee
South China Normal University
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 South China Normal University filed Critical South China Normal University
Priority to CN201611202438.3A priority Critical patent/CN106844062B/zh
Publication of CN106844062A publication Critical patent/CN106844062A/zh
Application granted granted Critical
Publication of CN106844062B publication Critical patent/CN106844062B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种在C++与Python模块间实现实时双向协助的通信方法,该方法通过利用socket实现了通信的实时性,将C++模块作为服务端,Python模块作为客户端,从而实现了通信的双向性,并且客户端可以创建多个socket,使得Python模块与C++模块的交互更加灵活;同时,利用多线程技术实现了通信的协助性,Python模块的主线程用来接收C++模块的命令请求,Python模块的子线程用来处理相应的命令请求,而C++模块接收到这些命令请求后,根据预定义的命令处理表做出相应的处理。本发明的方法实现了C++模块和Python模块之间的相互的灵活调用,避免了使用SWIG来实现Python模块调用C++模块所带来的额外工作,可以大大提高程序的开发效率,适用于程序开发、测试等领域。

Description

一种在C++与Python模块间实现实时双向协助的通信方法
技术领域
本发明属于计算机应用程序转换研究领域,特别涉及一种在C++与Python模块间实现实时双向协助的通信方法。
背景技术
目前,由于C++支持面向对象机制、泛型编程机制、异常处理、运算符重载,具有成熟可靠高效的标准模板库(STL),并且开发的程序执行效率高,所以C++被广泛地应用于计算机应用程序的开发。另外,Python是一种面向对象、解释型的计算机程序设计语言,它具有语法简单、跨平台、公用库多等特点,因此Python也得到了广泛的使用。但是,C++和Python均存在一定的缺点,例如C++语言本身复杂,学习周期比较长,公用库没有Python的公用库多,而Python是一门解释性语言,执行效率没有C++开发的程序高。通过Python的公用库,可灵活的获得大量的数据信息;将信息传递给C++程序,能具有更高的数据处理效率。
就目前的技术而言,C++能够单方面地调用Python功能模块,但是Python却不能单方面、直接地调用C++功能模块,Python可以通过间接的方法调用C++模块,但是这种间接调用是需要利用SWIG或者boost将C++功能模块封装为可以被Python调用的功能模块,这就增加了额外的工作量,不利于应用程序的开发。
因此,如果提供一种能够在C++功能模块和Python功能模块之间进行实时双向协助的通信方法,将大大提高程序开发的周期,具有重要的研究意义。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种在C++与Python模块间实现实时双向协助的通信方法,该方法能够将C++的高效执行效率和Python的高效开发效率结合起来,大大地提高程序的开发效率,具有实时性、双向性、协助性和灵活性的优点。
本发明的目的通过以下的技术方案实现:一种在C++与Python模块间实现实时双向协助的通信方法,包括步骤:
(1)初始化阶段:将C++模块设定为服务端,Python模块设定为客户端,在C++模块内创建若干个socket实例;在Python模块内创建若干个socket实例,其中一个socket实例位于主线程,其中若干个socket实例位于子线程,C++模块和Python模块之间的通信通过socket实现,同时在服务端预定义一对应Python模块反馈信息的命令处理表;
(2)在Python模块里面,位于主线程的socket实例实时接收C++模块的命令请求,并在接收到命令请求后唤醒相应的子线程,位于子线程的socket实例对命令请求做出处理;如果处理过程中需要做出信息反馈或者调用C++内某功能模块,则通过socket实例发送反馈信息到C++模块,否则子线程继续等待下次被唤醒;
(3)C++模块接收到上述反馈信息后,根据命令处理表做出响应;如果在做出响应过程中需要做出信息反馈或调用Python内某功能模块,则返回重复执行步骤(2),否则处理结束,结束二者之间的通信;
(4)利用守护进程对服务端以及客户端进行状态监控,分别注册两个服务处理函数,用以对服务端和客户端的状态进行监控以及处理。
本发明的方法实现了C++模块和Python模块之间的相互的灵活调用,避免了使用SWIG来实现Python模块调用C++模块所带来的额外工作。
优选的,所述Python模块内创建有两个socket实例,一个socket实例位于主线程,用于接收C++模块的命令请求,另一个socket用于向C++模块做出信息反馈,其可嵌入到主线程外的任意需要反馈信息的函数里面。
更进一步的,对于Python模块,当位于主线程的socket实例还没有接收到命令请求时,该socket处于等待状态,子线程也处于等待状态,子线程的等待利用threading模块的Condition类来实现。
优选的,所述Python模块中socket实例发送或者接收的命令请求都是按照预定义格式的字符串,对于Python模块的socket接收的命令的格式是:“类名;函数名”或者“类名;函数名;字符串实参”。
更进一步的,在Python模块里面,子线程通过调用getattr()函数来进行命令处理,对于命令格式为“类名;函数名”的命令,其调用方式是getattr(object,name)(),对于命令格式为“类名;函数名;字符串实参”的命令,其调用方式是getattr(object,name)(param),其中object是类的实例,name是对应类的实例的成员函数,param是调用函数所需要的参数。
更进一步的,所述类的实例object是预先添加到字典类型里面的,并且该字典是一个全局类型的字典,其键-值的类型是:类名的字符串-对应类的实例。
更进一步的,Python模块的socket接收的命令利用了Queue模块里面的Queue类来装载的。
优选的,所述C++模块中socket实例发送或者接收的命令请求都是按照预定义格式的字符串,对于C++模块的socket接收的命令的格式是:“操作标识符;”或者“操作标识符;字符串实参”。
优选的,所述预定义的对应Python模块反馈信息的命令处理表相当于switch-case的条件分支处理模块,不同的条件分支对应着预定义的不同的处理函数段,根据命令的不同而选择不同的处理函数段。
优选的,所述的守护进程是利用服务以及服务控制管理器来实现,处理步骤如下:
(4-1)将服务端和客户端创建为服务,将这两个服务与服务控制管理器关联,服务控制管理器对这两个服务的状态进行实时监控;
(4-2)分别设置服务端和客户端的服务处理函数;
(4-3)当服务控制管理器发现服务的状态发生改变的时候,会把对应的服务状态传输给对应的服务,并触发相应的服务处理函数。
守护进程是为了解决发现问题和异常处理问题的进程,分别的处理过程是:
对于发现问题的进程,当客户端请求开启服务端,在客户端中设置相应的服务状态,服务控制管理器检测到状态发生了改变,就触发服务端的服务处理函数,从而开启服务端;
对于异常处理问题的进程,服务控制管理器进行如下处理:
a、自定义相关的服务状态值,这些值是一些异常状态值;
b、对于服务端有可能发生异常的地方以及相关的异常处理块用try-catch括起来;
c、当发生异常的时候,会触发catch内部的代码,在catch内部代码中,设置上述的异常状态值;
d、服务控制管理器检测到这些异常状态值,会触发服务端的服务处理函数,在这个函数内部做相应的异常处理。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明通过利用socket实现了通信的实时性,将C++模块作为服务端,Python模块作为客户端,能够在C++功能模块和Python功能模块之间建立实时的通信机制,并且这种通信是双向的,C++模块能够向Python模块传递信息,同时Python模块也可以向C++模块传递信息,能够将C++的高效执行效率和Python的高效开发效率结合起来,大大地提高了程序的开发效率。
2、本发明能够在客户端多创建几个socket,以满足不同的信息反馈的需求,使得Python模块与C++模块的交互更加灵活。
3、本发明利用多线程技术实现了通信的协助性,Python模块的主线程用来接收C++模块的命令请求,Python模块的子线程用来处理相应的命令请求,而C++模块接收到这些命令请求后,根据预定义的命令处理表做出相应的处理,能够使得程序更加稳定
4、本发明的方法实现了C++模块和Python模块之间的相互的灵活调用,避免了使用SWIG来实现Python模块调用C++模块所带来的额外工作。
5、本发明通过利用守护进程对服务端和客户端的状态进行监控,解决了发现问题以及异常处理问题,提高了模块之间的可靠性。
附图说明
图1是本发明方法的运作流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
本实施例一种在C++与Python模块间实现实时双向协助的通信方法中,将C++模块设定为服务端,Python模块设定为客户端,二者内部均创建有socket实例,之间的通信通过socket实现,二者之间的状态监控是通过守护进程实现的,下面对服务端、客户端以及守护进程的工作流程分别进行具体说明。
服务端:
即C++模块,只创建一个socket,而且命令的接收和发送都位于主线程,命令的处理也位于主线程中,服务端的socket创建以及相关处理步骤如下:
1、创建一个socket实例,绑定端口号,绑定处理函数function1,设置处理标记为接入标记,也就是当Python模块请求接入的时候,处理函数function1将会调用;
2、当Python模块请求接入,步骤1的处理函数将被调用,在该处理函数里面,接受Python模块的请求接入,并且绑定另一个处理函数function2,设置处理标记为输入标记和关闭标记,也就是当Python模块向C++模块发送输入命令或者请求关闭连接的时候,处理函数function2将会被调用;当Python模块没有请求接入的时候,处理函数function2等待Python模块的命令请求;
3、当Python模块请求接入的时候,步骤2的处理函数function2将会被调用,在处理函数function2内部预先定义了一个命令处理表,该命令处理表类似于条件分支的处理结构,判定函数根据请求命令的不同而做出不同的条件分支的选择,不同的条件分支对应着预定义的不同的处理函数段;
4、在步骤3里面的不同条件分支处理函数段里面,根据不同的需求,可以利用socket向Python模块发送信息反馈。
客户端:
即Python模块,内部创建了两个socket,一个socket位于主线程,用于接收C++模块发送的命令请求,另一个socket用于向C++模块反馈信息。对于位于主线程的socket以及子线程对命令的处理,其处理步骤如下:
1、主线程的socket位于一个处于无限循环的while循环中,并且调用socket的recv()函数,由于recv()函数是阻塞型的函数,也就是当recv()函数还没有接收到命令请求的时候,它会一直等待;
2、当主线程的socket接收到BREAK命令的时候,唤醒并退出子线程,同时也退出主线程,并关闭两个socket;
3、当主线程的socket接收到非BREAK命令的时候,将命令放入到类型为Queue的命令队列里面,并且唤醒子线程,让子线程从命令队列里面取出一个命令,并对这个命令进行处理;
4、子线程利用getattr()函数对命令的进行处理,其处理步骤如下:
1)以英文模式的分号“;”为分界线对命令进行分开;
2)判断被分开后命令的个数,如果命令个数为2个,则以getattr(object,name)()的调用形式处理该命令;如果命令的个数为3个,则以getattr(object,name)(param)的调用形式处理该命令,其中object是类的实例,也是被分开的命令的第一个命令,name是对应类的实例的成员函数,也是被分开的命令的第二个命令,param是调用函数所需要的参数,也是被分开的命令的第三个命令;
3)子线程在处理命令的时候,根据是否需要对C++模块进行反馈,可以利用另一个socket发送命令;
4)当子线程处理完命令后,继续等待下一条命令。
为了提高模块之间的稳定性,在客户端接收服务端发送过来的命令之前,设置一个传输监控功能,其实现原理如下:
1、在服务端与客户端之间设置一个共享状态变量;
2、在服务端准备向客户端发送命令之前,改变上述的共享状态变量;
3、在客户端中时刻检测共享状态变量,当发现共享状态变量被改变之后,等待一段时间,等待结束后,检测命令队列里面是否存在命令,如果不存命令,则要求服务端重新发送命令。
守护进程:
守护进程是为了解决发现问题和异常处理问题的进程,在Windows上是利用服务以及服务控制管理器(Service Control Manager)来实现,其处理步骤如下:
1、将服务端和客户端创建为服务,将这两个服务与服务控制管理器关联,服务控制管理器对这两个服务的状态进行实时监控;
2、分别设置服务端和客户端的服务处理函数;
3、当服务控制管理器发现服务的状态发生改变的时候,会把对应的服务状态传输给对应的服务,并触发相应的服务处理函数。
对于发现问题,当客户端请求开启服务端,在客户端中设置相应的服务状态,服务控制管理器检测到状态发生了改变,就会触发服务端的服务处理函数,从而开启服务端。
对于异常处理问题,服务控制管理器仍然可以触发服务处理函数,其处理步骤如下:
1、自定义相关的服务状态值,这些值是一些异常状态值;
2、对于服务端有可能发生异常的地方以及相关的异常处理块用try-catch括起来;
3、当发生异常的时候,会触发catch内部的代码,在catch内部代码中,设置上述的异常状态值;
4、服务控制管理器检测到这些异常状态值,会触发服务端的服务处理函数,在这个函数内部做相应的异常处理。
本实施例方法利用socket实现了通信的实时性,实现了C++模块和Python模块之间的相互的灵活调用,避免了使用SWIG来实现Python模块调用C++模块所带来的额外工作,在程序开发过程中,由于兼具了C++的高效执行效率和Python的高效开发效率,因此开发效率更高,可应用于软件开发设备、测试设备等场合。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (10)

1.一种在C++与Python模块间实现实时双向协助的通信方法,其特征在于,包括步骤:
(1)初始化阶段:将C++模块设定为服务端,Python模块设定为客户端,在C++模块内创建若干个socket实例;在Python模块内创建若干个socket实例,其中一个socket实例位于主线程,其中若干个socket实例位于子线程,C++模块和Python模块之间的通信通过socket实现,同时在服务端预定义一对应Python模块反馈信息的命令处理表;
(2)在Python模块里面,位于主线程的socket实例实时接收C++模块的命令请求,并在接收到命令请求后唤醒相应的子线程,位于子线程的socket实例对命令请求做出处理;如果处理过程中需要做出信息反馈或者调用C++内某功能模块,则通过socket实例发送反馈信息到C++模块,否则子线程继续等待下次被唤醒;
(3)C++模块接收到上述反馈信息后,根据命令处理表做出响应;如果在做出响应过程中需要做出信息反馈或调用Python内某功能模块,则返回重复执行步骤(2),否则处理结束,结束二者之间的通信;
(4)利用守护进程对服务端以及客户端进行状态监控,分别注册两个服务处理函数,用以对服务端和客户端的状态进行监控以及处理。
2.根据权利要求1所述的通信方法,其特征在于,所述Python模块内创建有两个socket实例,一个socket实例位于主线程,用于接收C++模块的命令请求,另一个socket用于向C++模块做出信息反馈,其可嵌入到主线程外的任意需要反馈信息的函数里面。
3.根据权利要求2所述的通信方法,其特征在于,对于Python模块,当位于主线程的socket实例还没有接收到命令请求时,该socket处于等待状态,子线程也处于等待状态,子线程的等待利用threading模块的Condition类来实现。
4.根据权利要求3所述的通信方法,其特征在于,所述Python模块中socket实例发送或者接收的命令请求都是按照预定义格式的字符串,对于Python模块的socket接收的命令的格式是:“类名;函数名”或者“类名;函数名;字符串实参”。
5.根据权利要求4所述的通信方法,其特征在于,在Python模块里面,子线程通过调用getattr()函数来进行命令处理,对于命令格式为“类名;函数名”的命令,其调用方式是getattr(object,name)(),对于命令格式为“类名;函数名;字符串实参”的命令,其调用方式是getattr(object,name)(param),其中object是类的实例,name是对应类的实例的成员函数,param是调用函数所需要的参数。
6.根据权利要求5所述的通信方法,其特征在于,所述类的实例object是预先添加到字典类型里面的,并且该字典是一个全局类型的字典,其键-值的类型是:类名的字符串-对应类的实例。
7.根据权利要求2所述的通信方法,其特征在于,Python模块的socket接收的命令利用了Queue模块里面的Queue类来装载的。
8.根据权利要求1所述的通信方法,其特征在于,C++模块中socket实例发送或者接收的命令请求都是按照预定义格式的字符串,对于C++模块的socket接收的命令的格式是:“操作标识符;”或者“操作标识符;字符串实参”。
9.根据权利要求1所述的通信方法,其特征在于,所述预定义的对应Python模块反馈信息的命令处理表相当于switch-case的条件分支处理模块,不同的条件分支对应着预定义的不同的处理函数段,根据命令的不同而选择不同的处理函数段。
10.根据权利要求1所述的通信方法,其特征在于,所述的守护进程是利用服务以及服务控制管理器来实现,处理步骤如下:
(4-1)将服务端和客户端创建为服务,将这两个服务与服务控制管理器关联,服务控制管理器对这两个服务的状态进行实时监控;
(4-2)分别设置服务端和客户端的服务处理函数;
(4-3)当服务控制管理器发现服务的状态发生改变的时候,会把对应的服务状态传输给对应的服务,并触发相应的服务处理函数;
对于发现问题的进程,当客户端请求开启服务端,在客户端中设置相应的服务状态,服务控制管理器检测到状态发生了改变,就触发服务端的服务处理函数,从而开启服务端;
对于异常处理问题的进程,服务控制管理器进行如下处理:
a、自定义相关的服务状态值,这些值是一些异常状态值;
b、对于服务端有可能发生异常的地方以及相关的异常处理块用try-catch括起来;
c、当发生异常的时候,会触发catch内部的代码,在catch内部代码中,设置上述的异常状态值;
d、服务控制管理器检测到这些异常状态值,会触发服务端的服务处理函数,在这个函数内部做相应的异常处理。
CN201611202438.3A 2016-12-23 2016-12-23 一种在C++与Python模块间实现实时双向协助的通信方法 Expired - Fee Related CN106844062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611202438.3A CN106844062B (zh) 2016-12-23 2016-12-23 一种在C++与Python模块间实现实时双向协助的通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611202438.3A CN106844062B (zh) 2016-12-23 2016-12-23 一种在C++与Python模块间实现实时双向协助的通信方法

Publications (2)

Publication Number Publication Date
CN106844062A true CN106844062A (zh) 2017-06-13
CN106844062B CN106844062B (zh) 2019-06-18

Family

ID=59135671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611202438.3A Expired - Fee Related CN106844062B (zh) 2016-12-23 2016-12-23 一种在C++与Python模块间实现实时双向协助的通信方法

Country Status (1)

Country Link
CN (1) CN106844062B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729073A (zh) * 2017-09-22 2018-02-23 郑州云海信息技术有限公司 一种基于Python多进程库创建systemd服务的方法
CN109379337A (zh) * 2018-09-18 2019-02-22 四川长虹电器股份有限公司 一种安卓平台下应用进程的保活方法
CN113672402A (zh) * 2021-07-22 2021-11-19 杭州未名信科科技有限公司 一种基于Py4j服务的在线数据处理方法、装置、存储介质及终端
CN114301891A (zh) * 2021-12-27 2022-04-08 北京睿芯高通量科技有限公司 一种基于Python的Web服务和Socket客户端交互方法及***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201773507U (zh) * 2010-04-30 2011-03-23 大连海事大学 一种基于c/c++及matlab软件的交互式教学实验***
US8037202B2 (en) * 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
CN103312790A (zh) * 2013-05-20 2013-09-18 东莞中融电子科技有限公司 B/s模式下的客户机数据交互***及方法
CN103595820A (zh) * 2013-11-28 2014-02-19 深圳英飞拓科技股份有限公司 嵌入式前端设备后台控制调试方法及装置
US20140108630A1 (en) * 2012-10-11 2014-04-17 American Express Travel Related Services Company, Inc. Method and system for managing processing resources
CN105573903A (zh) * 2014-10-11 2016-05-11 中兴通讯股份有限公司 一种自动化测试方法、装置、***及访问代理
CN106095601A (zh) * 2016-06-16 2016-11-09 广东工业大学 一种多进程并发解算差分服务器***及其实现方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8037202B2 (en) * 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
CN201773507U (zh) * 2010-04-30 2011-03-23 大连海事大学 一种基于c/c++及matlab软件的交互式教学实验***
US20140108630A1 (en) * 2012-10-11 2014-04-17 American Express Travel Related Services Company, Inc. Method and system for managing processing resources
CN103312790A (zh) * 2013-05-20 2013-09-18 东莞中融电子科技有限公司 B/s模式下的客户机数据交互***及方法
CN103595820A (zh) * 2013-11-28 2014-02-19 深圳英飞拓科技股份有限公司 嵌入式前端设备后台控制调试方法及装置
CN105573903A (zh) * 2014-10-11 2016-05-11 中兴通讯股份有限公司 一种自动化测试方法、装置、***及访问代理
CN106095601A (zh) * 2016-06-16 2016-11-09 广东工业大学 一种多进程并发解算差分服务器***及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘晖、林欣、***等: "《开源商业化三维游戏引擎大揭秘》", 31 January 2013 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729073A (zh) * 2017-09-22 2018-02-23 郑州云海信息技术有限公司 一种基于Python多进程库创建systemd服务的方法
CN109379337A (zh) * 2018-09-18 2019-02-22 四川长虹电器股份有限公司 一种安卓平台下应用进程的保活方法
CN113672402A (zh) * 2021-07-22 2021-11-19 杭州未名信科科技有限公司 一种基于Py4j服务的在线数据处理方法、装置、存储介质及终端
CN113672402B (zh) * 2021-07-22 2024-06-04 杭州未名信科科技有限公司 一种基于Py4j服务的在线数据处理方法、装置、存储介质及终端
CN114301891A (zh) * 2021-12-27 2022-04-08 北京睿芯高通量科技有限公司 一种基于Python的Web服务和Socket客户端交互方法及***
CN114301891B (zh) * 2021-12-27 2023-10-13 北京睿芯高通量科技有限公司 一种基于Python的Web服务和Socket客户端交互方法及***

Also Published As

Publication number Publication date
CN106844062B (zh) 2019-06-18

Similar Documents

Publication Publication Date Title
CN106844062A (zh) 一种在C++与Python模块间实现实时双向协助的通信方法
US20090271351A1 (en) Rules engine test harness
CN110245035A (zh) 一种链路跟踪方法及装置
CN109634728A (zh) 作业调度方法、装置、终端设备及可读存储介质
CN108845910A (zh) 大规模微服务***的监控方法、装置及存储介质
CN109344170B (zh) 流数据处理方法、***、电子设备及可读存储介质
CN107368365A (zh) 云平台自动运维方法、***、设备及存储介质
JP2018509709A (ja) 知識集約型データ処理システム
CN107943577A (zh) 用于调度任务的方法和装置
CN110427252A (zh) 基于任务依赖关系的任务调度方法、装置及存储介质
CN105610819B (zh) 提供服务器信息的查询服务的方法和装置
US20220291951A1 (en) Automated semantic tagging
CN106792630A (zh) 一种实现移网业务开通的方法及***
CN103257852B (zh) 一种分布式应用***的开发环境搭建的方法和装置
CN109240688A (zh) 界面开发方法、电子装置及可读存储介质
CN105975261B (zh) 一种面向统一接口调用的运行时***及运行方法
CN105447681A (zh) 一种理化检测控制与信息管理***
CN109669931A (zh) 历史数据异常分析方法、***、设备及存储介质
CN108255602A (zh) 任务组合方法及终端设备
CN110362565A (zh) 在事件聚类中使用和更新一组节点之间的拓扑关系
WO2018000878A1 (zh) 分布式任务处理方法和装置
CN100407663C (zh) 一种电信智能业务的通用测试***及方法
CN110083457A (zh) 一种数据获取方法、装置以及数据分析方法、装置
CN113157523B (zh) 服务监控方法、装置、计算机设备及存储介质
CN107171873A (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
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190618

Termination date: 20201223