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

C++ 检测Windows上服务器端的RPC连接丢失,c++,c,windows,winapi,rpc,C++,C,Windows,Winapi,Rpc,有没有办法从服务器端检查RPC连接的状态?我正在寻找一种方法来检测来自客户端的连接是否丢失,无论是客户端崩溃还是其他连接问题。用于管理特定客户端调用之间的服务器状态。RPC使用keep alive来检测客户端断开连接,如果客户端断开连接,它将执行上下文句柄运行例程。Mo Flanagan的答案是最好的IMHO。更多的上下文 如果您使用的是绑定句柄,则无法跨RPC调用跟踪状态,“客户端断开连接”的概念基本上没有意义-您仍然需要从RPC调用返回 如果您使用的是上下文句柄,那么RPC运行库将在客户端断

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

用于管理特定客户端调用之间的服务器状态。RPC使用keep alive来检测客户端断开连接,如果客户端断开连接,它将执行上下文句柄运行例程。

Mo Flanagan的答案是最好的IMHO。更多的上下文

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

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


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

为了过去的缘故,我不得不回答这个问题。我曾经在MSFT的RPC团队工作,这让我想起了RPCDBG;)这是否意味着,如果我想让服务器在现有RPC API上检测客户机离开,最好的方法是添加一个函数,该函数返回一个上下文句柄,该句柄除了标识客户机之外什么都不做,并且当它的rundown函数执行时,我知道客户机离开了?这听起来需要最少的更改,尽管我真的希望我可以在没有任何客户端更改的情况下完成。