关闭RPC服务器端点

时间:2012-10-16 08:48:38

标签: c++ c rpc endpoint

我有一个程序可以启动具有特定端口的RPC服务器:

  1. RpcServerRegisterIf
  2. RPCServerUseProtSeqEp
  3. 开始听......
  4. RpcUnregisterIf
  5. 但是,在调用RPCServerUseProtSeqEp之后,立即将端口分配给进程,并且对此函数的后续调用将返回Duplicate Endpoint。

    如何取消注册\关闭此端口?我需要在几个进程中使用这个rpc服务器。

1 个答案:

答案 0 :(得分:-1)

你混淆了订单:

  1. RpcServerUseProtseqEp()//告诉RPC使用哪个协议
  2. RpcServerRegisterIf()//注册接口
  3. RpcServerListen()
  4. 请参阅msdn, RPCServer Application

    我希望这个答案不会太晚

    添加8/22/2016

    1. 关闭服务器端点使用 RpcServerUnregisterIf() 见msdn, Stopping RPCServer Application

    2. 再次
    3. :你混淆了api调用的顺序:首先调用RpcServerUseProtseqEp()指定协议,然后调用RpcServerRegisterIf()注册服务器,然后调用RpcServerListen()

    4. RpcServerListen()阻止调用它的线程。如果从控制台程序中调用它,请使用ctrl c结束通话。然后将执行下一行代码,通常是RpcServerUnregisterIf()。如果从nseperate线程(例如在服务中)调用RpcServerListen(),请在主线程中使用RpcMgmtStopServerListening()关闭服务器。