最佳 C/C++ 网络库

Posted

技术标签:

【中文标题】最佳 C/C++ 网络库【英文标题】:Best C/C++ Network Library 【发布时间】:2010-09-12 05:57:07 【问题描述】:

我有一段时间没有在 C/C++ 方面做过工作,只是想知道人们最喜欢使用哪些跨平台库。

我正在寻找一个既快速又脏的库以及更健壮的库。通常这是两个不同的库,没关系。

【问题讨论】:

【参考方案1】:

库汇总列表

Boost.Asio 真不错。 Asio 也可作为独立库使用。 ACE也不错,成熟一点,有books的couple支持。 C++ Network Library POCO Qt Raknet ZeroMQ (C++) nanomsg(C 库) nng(C 库) 伯克利插座 libevent Apache APR yield Winsock2(仅限 Windows) wvstreams zeroc libcurl libuv(跨平台 C 库) SFML's Network Module C++ Rest SDK (Casablanca) RCF Restbed (HTTP Asynchronous Framework) SedNL SDL_net OpenSplice|DDS facil.io(C,可选 HTTP 和 Websockets,Linux / BSD / macOS) GLib Networking grpc 来自谷歌 GameNetworkingSockets 来自 Valve CYSockets用最简单的方式做简单的事情 yojimbo GGPO ENet SLikeNet 是 Raknet 的一个分支 netcode photon 是封闭源代码,需要许可证才能使用他们的 sdk crossplatform network - 基于 boost asio 的开源非阻塞元模板框架

【讨论】:

Qt 有一个免费的开源版本,您也可以使用它创建商业软件。 ***.com/questions/352896/qt-commercial-licenses 如果您不想链接到 Boost 或向项目添加 boost,您可能需要考虑独立版本、仅标题、Asio 版本。 think-async.com/Asio 在任何时候尝试使用这些框架之前,他/她都应该阅读文档。例如 asio 和 boost::asio 放弃了对大量旧编译器版本的支持。就我而言,现在我无法将这些库的较新版本用于成熟项目。 casablanca.codeplex.com 上的 C++ Rest SDK(以前称为 Casablanca)是该列表的有力竞争者。 Winsock 不是库。它是由一组系统调用支持的 API/ABI。

以上是关于最佳 C/C++ 网络库的主要内容,如果未能解决你的问题,请参考以下文章

掌握 libevent 网络库的正确姿势c/c++ linux服务器开发

C++实现,支持跨平台(Windows,Android,IOS),支持跨语言(C++,C#,Java)的网络库

什么是 OpenCV 的最佳卷积神经网络 (CNN) 库? (带有简单的实现和示例)

在 C/C++ 项目中自动检测库依赖关系的最佳方法是啥?

C/C++ C++调用用C库函数理解

C/C++开发人员要了解的几大著名C/C++开源库