如果我想要事件驱动服务器,该使用啥 libevent 或 libev?
Posted
技术标签:
【中文标题】如果我想要事件驱动服务器,该使用啥 libevent 或 libev?【英文标题】:If i want event driven server what to use libevent or libev?如果我想要事件驱动服务器,该使用什么 libevent 或 libev? 【发布时间】:2011-05-01 20:04:47 【问题描述】:我想使用事件驱动库之一制作基本的聊天服务器。 但是选择什么? libevent 或 libev 哪个更好?哪个有更好的 c++ 支持? 哪个符文在 Windows 中更好? 什么更快?更快地开发和理解
【问题讨论】:
【参考方案1】:我更喜欢 libev。它非常简约,我见过的一些基准(可能是旧的)表明它表现更好。文档也不错。
【讨论】:
【参考方案2】:我更喜欢 libevent,因为 1) 它有一个 http 服务器(本地服务器和as an external project), 2)http客户端(如果你需要你的事件驱动服务器使用外部服务真的很有用); libev 有一个,但它不会为我编译最近的 libev 3) dns 服务器(我用它来自动重定向流量以实现高可用性) 4) IMO,更好的文档 5) 维护得更好(见 2)
【讨论】:
libev 没有 http 客户端,因此第 2) 和第 5) 点都没有意义。此外,libev 有一个 libevent 兼容层,因此为 libevent 设计的外部组件(例如 http 客户端或服务器)很有可能无需任何更改即可工作。 有一个客户端,但没关系:如果 libev 没有 http 客户端,那么第 2 点比我想象的更有意义。即使没有 2,5 也是有效的,我只是懒得添加更多示例。【参考方案3】:选择不仅仅是在 libevent 和 libev 之间。 Boost.asio 非常好。编程模型运行良好,并且集成到了您应该使用的 Boost 中。
如果您只是在学习,您不太可能注意到由库引起的任何速度差异。
【讨论】:
以上是关于如果我想要事件驱动服务器,该使用啥 libevent 或 libev?的主要内容,如果未能解决你的问题,请参考以下文章