Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何缩短Windows RPC调用超时?_C++_Windows_Network Programming_Rpc_Idl - Fatal编程技术网

C++ 如何缩短Windows RPC调用超时?

C++ 如何缩短Windows RPC调用超时?,c++,windows,network-programming,rpc,idl,C++,Windows,Network Programming,Rpc,Idl,当我尝试调用由midl工具从IDL文件生成的RPC函数时,如果无法访问其RPC_BINDING_句柄中的IP绑定,它会阻塞大约20秒(在NdrGetBuffer函数处) 在调用该RPC函数之前,我尝试使用其RPC_BINDING_句柄上的RPC_BINDING_MIN_超时值调用rpcmgmtsetimeout函数,但没有帮助,仍然需要等待约20秒 有没有办法缩短这个案例的超时等待时间?非常感谢 Elliott我没有尝试过这个,但建议使用RPC_C_OPT_CALL_TIMEOUT应该允许您设置

当我尝试调用由midl工具从IDL文件生成的RPC函数时,如果无法访问其RPC_BINDING_句柄中的IP绑定,它会阻塞大约20秒(在NdrGetBuffer函数处)

在调用该RPC函数之前,我尝试使用其RPC_BINDING_句柄上的RPC_BINDING_MIN_超时值调用rpcmgmtsetimeout函数,但没有帮助,仍然需要等待约20秒

有没有办法缩短这个案例的超时等待时间?非常感谢

Elliott

我没有尝试过这个,但建议使用RPC_C_OPT_CALL_TIMEOUT应该允许您设置调用

但是,第一次调用仍有20秒的超时(因此服务器可以启动)。

我没有尝试过这一点,但建议使用RPC_C_OPT_call_timeout可以设置调用


但是,第一次呼叫仍有20秒的超时时间(因此服务器可以启动)。

一般来说,需要很长时间才能发现主机确实无法访问。互联网相当大,有各种各样的链接,延迟也不尽相同。当我面对可能很长的网络延迟时,我要做的是断开网络呼叫并运行计时器。远程对等方在计时器触发之前进行应答。。或者没有,我认为通话失败了,谢谢马丁。是的,当我面对套接字时,我也会使用异步线程。要使用的函数。但是,此RPC调用函数是由midl工具生成的,该工具只生成同步。电话。。。嗯。。。是否有可能生成异步。调用RPC函数?或者我可以在执行过程中(通过另一个线程)取消RPC函数吗?干杯,ElliottWell,总的来说,要花很长时间才能发现主持人真的是遥不可及。互联网相当大,有各种各样的链接,延迟也不尽相同。当我面对可能很长的网络延迟时,我要做的是断开网络呼叫并运行计时器。远程对等方在计时器触发之前进行应答。。或者没有,我认为通话失败了,谢谢马丁。是的,当我面对套接字时,我也会使用异步线程。要使用的函数。但是,此RPC调用函数是由midl工具生成的,该工具只生成同步。电话。。。嗯。。。是否有可能生成异步。调用RPC函数?或者我可以在执行过程中(通过另一个线程)取消RPC函数吗?干杯,Elliott,它起作用了!非常感谢:)即使是我在函数中设置的第一个调用仍然超时,而且我使用的是64位Windows 2003服务器(即,不仅在WinXP:D上工作)。它工作正常!非常感谢:)即使是我在函数中设置的第一个调用仍然超时,并且我使用的是64位Windows 2003服务器(即,不仅在WinXP:D上工作)。