异步C++;Linux(和Windows)通信库 我正在寻找一个通信库(socket,可能还有IPC),用于Linux上的C++,如果可能的话,也可以在Windows上,如果它与平台无关。

异步C++;Linux(和Windows)通信库 我正在寻找一个通信库(socket,可能还有IPC),用于Linux上的C++,如果可能的话,也可以在Windows上,如果它与平台无关。,c++,windows,linux,sockets,communication,C++,Windows,Linux,Sockets,Communication,它应该是异步的。我尝试了Boost Asio库,但由于我们无法找到解决方案的限制,我们无法在解决方案中使用Asio库 它应该是一个不需要单独执行外部二进制文件就可以充当独立服务器的实现 你们中有谁知道什么可以帮助我克服这些限制,因为我不想从头开始实现通信 编辑: 还有一个限制我忘了提。通信应允许实现独立的客户端和服务器,因此消息传递系统应向专用源发送和接收单个消息/字符串(服务器s向客户端c发送字符串str) 编辑2: Boost的局限性在于,在当前系统中,使用MPICH2或openmpi的MP

它应该是异步的。我尝试了Boost Asio库,但由于我们无法找到解决方案的限制,我们无法在解决方案中使用Asio库

它应该是一个不需要单独执行外部二进制文件就可以充当独立服务器的实现

你们中有谁知道什么可以帮助我克服这些限制,因为我不想从头开始实现通信

编辑: 还有一个限制我忘了提。通信应允许实现独立的客户端和服务器,因此消息传递系统应向专用源发送和接收单个消息/字符串(服务器s向客户端c发送字符串str)

编辑2:
Boost的局限性在于,在当前系统中,使用MPICH2或openmpi的MPI编译器编译的Boost Asio,特别是在使用MPI调用时,在尝试通过Asio进行通信时会丢失几条消息。

看看,a.k.aØMQ。

有很多可用的免费内容,看看有没有实现AMQP的东西(例如,但不限于:Apache的尝试-ActiveMQ、上面列出的ZeroMQ、rabbit mq[比zero更完整]甚至Red Hat都在使用Red Hat消息传递的游戏中)

从Tibco到29 West,从Tervela到Solace,解决方案的费用很多-这取决于你想付多少钱


我非常喜欢的其他选项包括OpenDDS-与AMQP不同,但同样具有高度可扩展性和非常好的性能。(忘了说,OpenDDS在封面下使用ACE…

“限制”?关于boost asio?真的吗?你可以试试ACE…也许你可以提到asio的哪些限制你有问题。所以我们建议一些没有这些问题的东西?“丢失了几条消息”但不是所有的?只是猜测,但我会责怪你的代码,而不是增强…也许在消息丢失的地方添加代码?重复Tom,我还会检查你的
async_read/write
调用,并确保它们在给定套接字上不会重叠-这是一个常见的错误,会导致读/写操作损坏…唯一的区别是工作代码和非工作代码之间的e正在使用MPI编译器并调用MPI::Init(),因此我有点怀疑这是否是我们的代码中的错误,因为它与普通的g++和cuda编译器一起工作。我们检查了MPI运行的端口及其消息,并且我们使用的端口没有被MPI使用。此外,会话成功启动,只使用了一个端口。如果MPI试图“劫持”在这个连接中,我假设init之后的所有消息都会被终止,或者我们至少会看到一些其他结果+1用于一个广泛的列表。不过我会排除Tibco,因为它需要一个守护进程来进行操作。@Nikolai,对于Rendezvous 8,我相信您现在可以选择一个嵌入式守护进程。.我已经阅读了ActiveMQ和RabbitMQ以前,但如果我没有弄错的话,这两个版本都使用一个作为守护进程运行的专用服务器。这有点违背了我正在寻找的限制。我担心非免费解决方案不是一个选项。不过我可能会看看OpenDDS,谢谢。@Nim,谢谢,我不知道。无论如何,Tibco真的很贵:)@Nikolai,与Tervela或Solace相比,他们的定价变化不大!;)