利索能及
我要发布
收藏
专利号: 2017105271427
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-16
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种以同步方式进行远程过程调用的方法,其特征在于,包括:在调用远程过程时,创建与所述远程过程对应的信号事件,所述信号事件的初始状态为无信号状态;

将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;

调用WaitForSingleObject函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的请求结果;

在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,从而使得所述WaitForSingleObject函数将所述远程过程对应的线程唤醒;

所述将所述远程过程对应的线程挂起,并等待所述被调用端返回的结果消息之后,还包括:检测与所述被调用端之间的网络连接是否断开;

若断开,则将所述信号事件的状态变更为有信号状态,从而通过所述WaitForSingleObject函数将所述远程过程对应的线程唤醒。

2.如权利要求1所述的以同步方式进行远程过程调用的方法,其特征在于,所述创建与所述远程过程对应的信号事件,包括:调用CreateEvent函数创建与所述远程过程对应的信号事件;

对所述信号事件分配唯一标识符,并将所述信号事件和所述唯一标识符存储在字典Dict中,所述唯一标识符与所述信号事件对应。

3.如权利要求2所述的以同步方式进行远程过程调用的方法,其特征在于,所述将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端,包括:与所述被调用端建立网络连接;

将所述唯一标识符连同所述调用请求一起发给所述被调用端。

4.如权利要求2所述的以同步方式进行远程过程调用的方法,其特征在于,所述在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,包括:在接收到所述请求结果时,从所述请求结果中提取所述唯一标识符;

基于所述唯一标识符,在所述字典Dict中查找所述信号事件;

调用SetEvent函数将所述信号事件的状态变更为有信号状态。

5.如权利要求1~4任一所述的以同步方式进行远程过程调用的方法,其特征在于,所述检测与所述被调用端之间的网络连接是否断开,包括:检测所述网络连接对应的线程是否进入OnError回调函数中;

若是,则表明所述网络连接断开。

6.一种以同步方式进行远程过程调用的装置,其特征在于,包括:创建单元,用于在调用远程过程时,创建与所述远程过程对应的信号事件,所述信号事件的初始状态为无信号状态;

发送单元,用于将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;

调用单元,用于调用WaitForSingleObject函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的请求结果;

变更单元,用于在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,从而使得所述WaitForSingleObject函数将所述远程过程对应的线程唤醒;

所述将所述远程过程对应的线程挂起,并等待所述被调用端返回的结果消息之后,还包括:检测与所述被调用端之间的网络连接是否断开;

若断开,则将所述信号事件的状态变更为有信号状态,从而通过所述WaitForSingleObject函数将所述远程过程对应的线程唤醒。

7.一种以同步方式进行远程过程调用的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:在调用远程过程时,创建与所述远程过程对应的信号事件,所述信号事件的初始状态为无信号状态;

将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;

调用WaitForSingleObject函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的请求结果;

在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,从而使得所述WaitForSingleObject函数将所述远程过程对应的线程唤醒;

所述将所述远程过程对应的线程挂起,并等待所述被调用端返回的结果消息之后,还包括:检测与所述被调用端之间的网络连接是否断开;

若断开,则将所述信号事件的状态变更为有信号状态,从而通过所述WaitForSingleObject函数将所述远程过程对应的线程唤醒。

8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现以下步骤:在调用远程过程时,创建与所述远程过程对应的信号事件,所述信号事件的初始状态为无信号状态;

将调用所述远程过程所需的调用请求发送给所述远程过程的被调用端;

调用WaitForSingleObject函数将所述远程过程对应的线程挂起,并等待所述被调用端返回的请求结果;

在接收到所述请求结果时,将所述信号事件的状态变更为有信号状态,从而使得所述WaitForSingleObject函数将所述远程过程对应的线程唤醒;

所述将所述远程过程对应的线程挂起,并等待所述被调用端返回的结果消息之后,还包括:检测与所述被调用端之间的网络连接是否断开;

若断开,则将所述信号事件的状态变更为有信号状态,从而通过所述WaitForSingleObject函数将所述远程过程对应的线程唤醒。