C++网络库探索(二)

本文对比了多种高性能网络库,包括nanomsg、Enet、Mongoose等,详细介绍了它们的特点、优缺点及适用场景,为开发者选择合适的网络库提供了参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重要信息源

  1. https://blog.youkuaiyun.com/xiaoxiaoyeyaya/article/details/42541419
  2. https://stackoverflow.com/questions/118945/best-c-c-network-library/118968#118968

开源网络库(补充)

网络库语言OS特点优点缺点适合干啥备注
nanomsgAnyAnyZMQ的C语言改造版本线程安全、C语言而不是C++,可伸缩的协议、iocp的支持、内存和 CPU 使用效率不易扩展、额外的系统调用等,没有zmq技术成熟。跨平台分布式高性能提供多种模式的socket实现INPROC、IPC、TCP通信
EnetCWindows和任何其他Unix或类Unix平台,提供BSD套接字。提供可靠的UDP传输,东西比较老,比较稳定应答机制、建立通道、大数据分割、组合缺乏“有序”,“连接管理”,“带宽管理”深度神经网络架构语义分割、可视化一个encoder一个decoder
MongooseC/C++Windows,Mac,UNIX / Linux,iPhone,Android eCos,QNX和许多其他平台TCP,UDP,HTTP,WebSocket,CoAP,MQTT的事件驱动的非阻塞API单线程,异步,非阻塞核心,具有简单的基于事件的API嵌入式、物联网异步,非阻塞核心,支持单线程或多线程使用,占用空间笑,轻量级。存在收发缓冲区,事件回调机制。
TufaoC++ Qt跨平台qt构建C++异步Web框架https支持,灵活安全的会话支持。超时支持,基于插件的服务器依赖asio和boost
zeroc ICE多语言Windows, Linux, macOS上开发使用TCP,UDP,SSL / TLS,WebSockets和蓝牙进行同步和异步调用。高效的二进制传输协议,最大限度地减少带宽消耗。宽带有限状况下,可提供自动压缩解压缩。单体应用,男扩展多语言开发环境支持传统的RPC调用、异步调用、One-Way调用、批量发起请求,支持TCP通信、UDP通信等。
gRPC多语言跨平台开发任意环境运行google 开发,是一款多语言、跨平台、开源的远程过程调用(RPC)框架。基于HTTP/2、IDL使用ProtoBuf、多语言支持grpc++不支持异步多次写入低延迟、高扩展性、分布式的系统 、移动应用客户端 、便于各方面扩展的分层设计,如认证、负载均衡、日志记录、监控等Protocol Buffers是一个二进制序列化的工具。
RestbedC++windows、BSD、linux、Mac OSXHTTP Asynchronous Framework)restful架构、异步调用、ssl支持、http2移动,平板电脑,桌面和嵌入式IPV4/IpV6、SSL/TSL、双通道的TCP连接、建立会话管理。
OpenSplice DDSC++windows、linux、ROTS实时系统数据分发服务(DDS)是一种面向消息的中间件(MOM),支持以数据为中心的发布和订阅通信方式AI、机器人、嵌入式、物联网
参考链接

ACE:https://blog.youkuaiyun.com/Solstice/article/details/5364096
libevent:https://libevent.org/
Muduo:https://blog.youkuaiyun.com/solstice/article/category/779646
poco:https://pocoproject.org/
evpp:https://github.com/Qihoo360/evpp

asio:https://think-async.com/Asio/
poco:https://pocoproject.org/
ZMQ:http://zeromq.org/
nanomsg:https://nanomsg.org/
LCM:http://lcm-proj.github.io/

Enet:http://enet.bespin.org/
Mongoose:https://cesanta.com/docs/overview/intro.html
Tufao:https://github.com/vinipsmaker/tufao
Zero c:https://zeroc.com/
https://blog.youkuaiyun.com/lijieshare/article/details/84828720
https://blog.youkuaiyun.com/giveupyou/article/details/84682800

gRPC:https://www.grpc.io/
https://blog.51cto.com/13914991/2309916?source=dra
Restbed:https://github.com/corvusoft/restbed
OpenSplice DDS:https://www.adlinktech.com/en/standards-vortex-data-distribution-service-opensplice.aspx

nanomsg

nanomsg是一个实现了几种“可扩展协议”的高性能通信库;可扩展协议的任务是定义多个应用系统如何通信,从而组成一个大的分布式系统。当前版本nanomsg支持以下协议:

配对模式:简单的一对一的通信;

总线模式:简单的多对多的通信;

请求/回复模式:支持组建大规模的集群服务来处理用户请求;

扇入模式:支持从多个源聚合请求消息;

扇出模式:支持分配到多个节点以支持负载均衡;

调查模式:允许在一个单一的请求里检查多个应用的状态;

可扩展协议是在网络通信协议之上实现的,当前版本nanomsg支持一下网络协议:

INPROC:单进程内通信;

IPC:单机内多进程的通信;

TCP:通过tcp协议的网络通信;

nanomsg用c实现,不依赖系统特性,所以支持多个操作系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值