2012-12-26 43 views
4
gcc 4.7.2 
c89 

我正在寻找一个轻量级消息队列(IPC),即跨平台(linux,windows)。用于IPC的轻量级跨平台消息队列

我已经使用了msgget,msgsnd和msgrcv。但是这不是跨平台的,所以不适用于Windows。

我不需要任何套接字层(tcp,udp)。因为所有的消息都将在同一台服务器上。

基本上,我有一个事件循环,我会阻塞(单独的线程),直到我从消息队列(msgrcv)中收到消息。然后处理该事件。这些消息将来自我创建的另一个共享库,我将监视事件循环中的事件。

我只是希望能够发送消息到消息队列(msgsnd),然后在我的事件循环中接收它们(msgrcv)。

+1

消息来自同一个_process_中的_processes_或不同的_threads_吗? –

回答

3

AFAIK有两个这样的事情:ØMQGearman

ØMQ是充当并发框架的套接字库,适用于可扩展多核消息传递应用的异步I/O。它支持大多数操作系统,包括Linux,Windows,OS X.

Gearman允许您并行工作,进行负载平衡处理以及在语言间调用函数。换句话说,它是分布式处理交流的神经系统。

+1

请注意,zmq都有进程和IPC传输,它不仅使用TCP/IP套接字。 – nos

0

您可以查看我们的MsgConnect(免费许可证可用)。 MsgConnect是一个跨平台(包括Linux和Windows)面向消息的中间件框架,专为在同一台计算机或跨网络轻松发送消息而设计。

+0

为了充分披露,您应该提及您为使用MsgConnect的公司工作。 –

+0

@EvanHaas是“我们”这个词的混淆了吗? –

+0

啊,我的错误(我读了“check out”而不是“检查我们的”)。恕我直言,你仍然应该使声明更加突出...... –