13

我正在寻找用 C++ 编写一个服务器应用程序,旨在同时处理数以万计的客户端。它应该在 Windows 和 Linux 下运行。我一直在寻找框架和库,并遇到了 Boost Asio,这似乎是一个非常成熟且广泛使用的替代方案。我只是在绞尽脑汁/线程池时遇到了麻烦,主要是因为有数百万个模板。我的背景主要是 C,所以不太习惯 Boost 似乎充满的模板混乱。我试图找人围绕 Boost Asio 开发一个相对较薄的包装器,它可以使用 strands、bind 等来处理线程/同步方面,但一直无法找到可以在我的预算范围内做到这一点的人(2 或300 美元)。

你们中的任何人都可以推荐任何其他可扩展的库以及 Boost Asio(例如,Windows 上的 IOCP 和 Linux 上的 epoll 等),或者我可能会找到有经验的 Boost 开发人员正在寻找较小的自由职业者的资源吗?

非常感谢您的任何帮助。

亲切的问候,

菲利普·班尼法尔

4

4 回答 4

11

我知道的最好的 4 个选择

我真的很喜欢 zeromq.. 但 libuv 看起来很有趣..(libev 和 libevent 也非常好)

于 2011-07-15T15:48:15.373 回答
4

ACE是您正在寻找的框架。甚至 boost Asio 也只是 Douglas C. Schmidt 引入的 Proactor 模式的一个实现。他最著名的是POSA Vol.2的作者和ACE框架的创建者。

Boost.Asio 库为同步和异步操作提供并行支持……基于 Proactor 设计模式 [POSA2]。

虽然它是一个跨平台的 C++ 网络框架并使用模板,但只是使用了简单的模板。(或根本没有)

我的背景也主要是 C,我不喜欢 Boost 的大量模板编程风格。然而,ACE 不是这样的。

于 2011-07-22T18:33:49.690 回答
3

试试libevent的大小。它存在的全部理由是解决C10K 问题。我会说它可能比 boost 更轻量级。

于 2011-07-15T00:18:23.483 回答
0

试试Pulsar 服务器框架。主要好处是它建立在 libuv 网络库(由 node.js 使用)之上,该库使用基于事件循环的异步 I/O。

  1. 它是完全可扩展的。随着用户群的增加,您可以添加服务器。

  2. 它旨在与服务器场一起使用。

  3. 高度可配置且易于使用

目前它已经为 Windows x64 服务器构建。

于 2018-07-04T06:33:55.660 回答