检测Windows上服务器端的RPC连接丢失

时间:2009-02-26 11:12:58

标签: c++ c windows winapi rpc

有没有办法从服务器端检查RPC连接的状态?我正在寻找一种方法来检测来自客户端的连接是否丢失,无论是客户端崩溃还是其他连接问题。

2 个答案:

答案 0 :(得分:4)

使用Context Handles管理特定客户端的呼叫之间的服务器状态。 RPC使用keep-alive来检测客户端断开连接,并在客户端断开连接时执行上下文句柄断开例程。

答案 1 :(得分:1)

Mo Flanagan的答案是最好的恕我直言。更多背景信息。

如果您正在使用绑定句柄,则无法跨RPC调用跟踪状态,并且“客户端断开连接”的概念基本上没有意义 - 您仍需要从RPC调用返回。

如果您正在使用上下文句柄,那么当客户端断开连接时,RPC运行时库将调用_rundown函数。

当调用该例程时,服务器可以清理它需要的任何内容。