libevent:信号、超时、回调

http://libevent.org/

目录

文献资料

下载–稳定版本

旧版本

基准测试

使用libevent的程序


libevent的 API提供一种机制,在特定事件上的文件描述符或达到超时后发生时执行的回调函数。此外,由于信号或常规超时libevent还支持回调。

libevent旨在替换事件驱动的网络服务器中的事件循环。应用程序只需要调用 event_dispatch(),然后动态添加或删除事件,而无需更改事件循环。

目前,libevent支持 / dev / poll, kqueue(2), 事件端口, POSIX select(2), Windows select(), poll(2)epoll(4)。内部事件机制完全独立于公开的事件API,libevent的简单更新可以提供新功能,而无需重新设计应用程序。结果,Libevent允许便携式应用程序开发,并提供操作系统上可用的最具扩展性的事件通知机制。Libevent也可以用于多线程应用程序,方法是隔离每个event_base,以便只有一个线程可以访问它,或者通过锁定对单个共享event_base的访问来实现。 Libevent应该在Linux,* BSD,Mac OS X,Solaris,Windows等平台上编译。

Libevent还提供了用于缓冲​​网络IO的复杂框架,并支持套接字,过滤器,速率限制,SSL,零拷贝文件传输和IOCP。Libevent包括对几种有用协议的支持,包括DNS,HTTP和最小的RPC框架。

有关网络服务器事件通知机制的更多信息,请参见Dan Kegel的“ C10K问题 ”网页。

libevent 的邮件列表现在可用。LibeventNick MathewsonAzat KhuzhinNiels Provos维护。

文献资料

图书:用Libevent编程
参考: 1.4.x-stable 2.0.x-stable 2.1.x-stable master
新功能: 2.0.x-stable   2.1.x-alpha

下载–稳定版本

除非您希望跟踪最新的开发版本并报告其中的错误,否则您可能需要这些来进行软件开发。

下载候选版本

这是一个候选版本。如果您发现任何错误,请告诉我们!

下载– Alpha版本

这是字母代码。如果您发现任何错误,请告诉我们!

旧版本

Libevent已根据3条款BSD许可发布。有关公共git访问的信息。

基准测试

在Libevent中使用不同的事件通知机制进行性能比较。我们对大量连接感到兴趣,其中大多数连接是冷的,只有少数是活动的

该基准测试了为一个活动连接提供服务所需的时间,并揭示了诸如select或poll之类的传统接口的可伸缩性问题。

该基准测试了为链接写入新连接的一百个活动连接提供服务的时间,直到发生数千次写入和读取为止。它多次执行事件循环。

使用libevent的程序

以下应用程序证明了libevent API的有用性:

  • Chromium – Google的开源Web浏览器(在Mac和Linux上使用Libevent)
  • Memcached –高性能的分布式内存对象缓存系统
  • 传输 –快速,轻松,免费的BitTorrent客户端
  • NTP –使您的时钟正确的网络时间协议(在SNTP中使用Libevent)
  • tmux –干净,现代的,BSD许可的终端多路复用器,类似于GNU屏幕
  • Tor –匿名Internet通信系统。
  • libevhtp –快速,灵活地替代libevent的http客户端/服务器API
  • Prosody –用Lua编写的Jabber / XMPP服务器
  • PgBouncer – PostgreSQL的轻量级连接池
  • redsocks –一个简单的透明TCP-> Socks5 / HTTPS代理守护程序。
  • 呕吐 –配置错误的网络电话上的语音
  • 抓取 –小型高效的HTTP 爬网程序
  • Libio –输入/输出抽象库
  • Honeyd –虚拟蜜网守护程序–可用于对抗Internet蠕虫
  • Fragroute – IDS测试工具
  • 尼龙 –嵌套代理服务器
  • Disconcert –松散耦合工作站的分布式计算框架。
  • ckle流 –轻量级的用户空间带宽整形器。
  • watchcatd –软件看门狗,旨在采取不像通常的解决方案那样激烈的措施来重置机器。
  • ScanSSH –快速的SSH服务器和开放式代理扫描程序。
  • Nttlscan – Honeyd的网络拓扑扫描程序。
  • NetChat – netcat和ppp聊天的组合。
  • Io –一种小型编程语言;使用libevent进行网络通信。
  • Systrace –系统调用沙箱。
  • SpyBye –检测网页上的恶意软件。
  • GreenSQL – SQL数据库防火墙。
  • dnsscan –用于识别开放式递归dns解析器的快速扫描器
  • Kargo Event – libevent的PHP扩展。
  • Scytale –数据库加密工具。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页