【问题标题】:xmlrpc server in dll, sending signal to myself?dll中的xmlrpc服务器,向自己发送信号?
【发布时间】:2010-12-28 11:54:34
【问题描述】:

我正在编写一些 dll(在 MSVC++2008 中的 Windows 上),它提供了一些作为 xmlrpc 服务器的功能。为了实现 xmlrpc 服务器,我使用 xmlrpc-c 库。

我可以通过一些不同的方式启动 xmlrpc 服务器。更有趣的是:

  • run method - 这将永远运行 xmlrpc 服务器,因此 dll 在服务器未终止之前无法控制。
  • runOnce method - 这将只运行 xmlrpc 服务器来处理一个 RPC。如果没有请求,它将等待。

我无法长时间控制 dll。我需要处理一些 RPC 并将控制权交还给使用 dll 的程序。并在 dll 重新获得控制权时处理下一个 RPC。

runOnce 看起来不错。但是有可能没有 RPC 需要处理,它会等待一个。这是不可接受的。

还有一个例外:

runOnce 中止等待 连接请求和返回 如果进程收到一个 信号。请注意,除非您有 该信号的处理程序,信号 可能会杀死整个过程, 所以设置一个信号处理程序——甚至一个 什么都不做——如果你想 利用这一点。但在 Xmlrpc-c 1.06 之前 (2006 年 6 月),信号无效—— 没有办法让 runOnce 中止 等待并返回。

我可以使用它作为解决方法,将控制权重新交给 dll 吗?是否可以从 dll 向自己发送信号?它在 Windows 上是如何工作的?

或者也许有更好的解决方案?

【问题讨论】:

    标签: c++ c visual-c++ dll


    【解决方案1】:

    信号(使 Xmlrpc-c 库提前中止调用的那种)在 Windows 中不存在。

    最好的解决方案是为服务器创建新线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多