dll中的xmlrpc服务器,向自己发送信号?

Posted

技术标签:

【中文标题】dll中的xmlrpc服务器,向自己发送信号?【英文标题】:xmlrpc server in dll, sending signal to myself? 【发布时间】: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 上是如何工作的?

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于dll中的xmlrpc服务器,向自己发送信号?的主要内容,如果未能解决你的问题,请参考以下文章

Qt(PyQt)事件循环中的xmlrpc?

向自己发送终止信号

在 linux (ubuntu) 上的 C 中延迟向我自己的进程发送信号

使用 XMLRPC 将文件从客户端发送到服务器?

自己理解的tcp三次握手与四次挥手

Amazon S3 是不是向 CloudFront 发送失效信号?