我正在使用ubuntu 10.10尝试安装libevent开发库libevent1和libevent2.我使用了以下命令 - apt-get install libevent-dev libevent1-dev But it shows- Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libevent1-dev 然后我使用了 - apt-get install libevent-dev 但是它说libevent-dev已经是最新版本.那是libevent2吗? 我是根用户.我做错了吗? Ubuntu 10.10是否支持Libevent2?非常感谢您的帮助.谢谢 解决方案 是的,libevent-dev安装libevent2.如果您在安装时检查APT-GET所说的话: apt-g
以下是关于 libevent 的编程技术问答
我正在尝试在Mac上安装Apache Thrift,但正在遇到问题. 我遵循此页面上的安装步骤,但是当我尝试执行安装libevent的步骤时运行make命令时获取以下错误: 由于未找到的" openssl/beio.h'文件,致命错误 实际错误的屏幕截图 我已经检查了我正在使用的OpenSSL的版本,它是" 0.9.8zg" 关于我应该做的解决问题的任何建议? 解决方案 我在El Capitan 10.11.6上,我在手动安装MongoDB PHP扩展时遇到了问题. 我按照 @user7059092的指示解决了它: $./configure LDFLAGS='-L/usr/local/opt/openssl/lib' CPPFLAGS='-I/usr/local/opt/openssl/include' 其他解决方案 在像其他人一样安装旧货时,我也有同样的问题.就我而言,我解决了下一个jira: 另一种方法是在"酿造安装opens
我已经编写了一个高通量服务器,该服务器在其自己的线程中处理每个请求.对于提出的请求,有时需要对一个或多个后端进行RPC.这些后端RPC由一个单独的队列和线程池处理,该线程在创建的线程数和与后端的最大连接数量(它可以进行一些缓存以重用客户端并保存开销)不断创建连接).不过,完成了所有这些工作,我开始认为基于事件的体系结构会更有效. 在搜索时,我还没有找到与java的libevent相等的,但是也许我不在正确的位置?来自Apache的Mina-Statemachine是我发现的最接近的东西,但它看起来比我需要的更详细,没有真正的释放. 有什么建议? 解决方案 我有点迟到: 您是否看过灰熊. 其他解决方案 轻重量事件系统怎么样? :) 其他解决方案 答案似乎是"否",尽管看起来Ruby Eventmachine库为Jruby用户提供了Java实现,这些用户可能是可用的或至少是编写我自己的灵感的灵感:
我是libevent和套接字编程中的新手,这就是为什么我质疑libevent如何作为异步和非阻止工作的原因. 这是参考代码. https://github.com/libevent/libevent/libevent/libevent/libevent/libevent/libevent/blob/master/sample/http-server.c static void dump_request_cb(struct evhttp_request *req, void *arg) { const char *cmdtype; struct evkeyvalq *headers; struct evkeyval *header; struct evbuffer *buf; printf("Request Start\n"); sleep(30); // delay to read request to check non bloc
我希望从redis + Hiredis + libevent中获得尽可能多的东西. 我正在使用以下代码(没有任何简短检查) #include #include #include #include #include #include #include typedef struct reqData { struct evhttp_request* req; struct evbuffer* buf; } reqData; struct event_base* base; redisAsyncContext* c; void get_cb(redisAsyncContext* context, void* r,
我正在将Laravel Web应用程序从PHP5.6升级到PHP7.1,这使我升级了Libevent模块.应用程序是基于React库的异步ANS. 所以我以安装结尾:php 7.1.12,libevent:2.1.8 + expressif/pecl-event-libevent.我从Nginx有稳定的" 502 BAD GATEWAWAY".没有libevent(ReactStreamloop)或php 5.6 + libevent:1.4工作正常. 请求土地index.php,稍后发生了一些事情,在开始应用程序内. nginx日志: 2017/11/24 10:41:24 [错误] 24985#0: *7 recv()失败(104:连接重置peer的连接重置),从上游阅读响应标头,客户端:14.183.16.180,服务器,服务器:173.199 .117.122,请求:" get/http/1.1",上游:" fastcgi://127.0.0.1:9000",主
我正在尝试在Windows上安装Gevent.为了做到这一点,我已经下载并编译了libevent,然后运行pip install gevent并获得错误:Please provide path to libevent source with --libevent DIR.如何将libevent选项传递给setup.py使用pip? 事先感谢伊万. upd:运行pip install gevent --install-option="--libevent path_to_libevent"给出相同的结果. 解决方案 从 http://code.google.com/p/gevent/downloads/list 其他解决方案 在此处下载预编译的软件包: http://pypi.python.org/pypi/pypi/greenlet http://pypi.py.python.org/pypi/gevent 这对我有用,python 2.7 32位
(通常称为C10K问题) 是否有对 c10k 问题的现代审查2006年),专门针对Linux(Epoll,SignalFD,Eventfd,Timerfd ..)和Libev或libevent之类的库? 讨论了现代Linux服务器上所有已解决且仍未解决的问题的内容? 解决方案 C10K问题通常假设您正在尝试优化单个服务器,但是正如您的参考文章指出的那样,"硬件不再是瓶颈".因此,要采取的第一步是确保将更多的硬件扔入混合物中,最简单和最便宜. 如果我们有一个$ 500的盒子每秒为X客户提供服务,那么购买另一个500美元的盒子来加倍我们的吞吐量,而不是让员工go go go,他们知道有多少小时和美元试图弄清楚我们如何从原始盒子中挤出更多.当然,这是假设我们的应用程序是多服务器友好的,我们知道如何加载平衡等... 其他解决方案 几天前,编程Reddit或Hacker News提到了这篇文章: Thousands of Threads and Blocki
我已经在Stackoverflow上检查了许多类似的问题,但尚未找到答案. 我正在尝试在狮子OSX上安装memcached as 在此处显示. 这是我得到的: j-court-demones-macbook-pro:libevent-1.4.12-stable jcourtdemone$ ./configure; make checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whet
过去几天,我一直在玩node.js(nodejs),这太棒了.据我所知,LUA没有类似的LIBEV和LIBIO集成,让我们避免以异步方式与网络和文件系统进行交互. 我正在慢慢将我的Java实现移植到Nodejs,但是我震惊的是,Luajit比V8 JavaScript快得多,并且使用了较少的内存! 我想在这样的环境中写下我的服务器(非常快速,响应迅速,内存使用非常低,非常表现力)会极大地改善我的项目. 是Lua的新手,我只是不确定是否存在这样的东西.我会感谢任何指示. 谢谢 解决方案 请参阅 lualibevent 和 lua-ev 以及其他解决方案 最近的一个相应项目是 luvit (lua + libuv + jit =纯awesomesauce). 来自公告: 这基本上是luajit2 + libuv(后面的事件循环库 nodejs).它像nodejs一样以单个可执行方式编译 运行.lua文件.是什么使它与股票不同 发行是否添加了几个内
在编译使用Libevent库的程序时,我正在使用GCC选项 - Levent.但是我遇到了这个错误 - /usr/bin/ld:找不到-levent 我在系统上没有libevent,因此我在使用 编译时静态地链接到它 gcc -o Hello -static -I libevent-1.4.12-stable/ hello.c -levent 如何解决这个问题? 预先感谢! 解决方案 系统上的libevent.(a|so)文件在哪里? 如果不在系统的库路径上,则必须添加一个-L选项,将其位置添加到链接器搜索的路径列表中. 例如 gcc -L/folder/containing/event/lib -levent mysource.cc 其他解决方案 您需要在系统上具有libevent或需要明确指定其路径(如果您使用标头的第三方库). 我怀疑它不在您的默认路径中.
我不明白evloop_no_exit_on_empty flag应该如何在libevent的2.1.x版本中使用. 如果我不向我的event_base添加任何事件 event_base_loop(my_base, EVLOOP_NO_EXIT_ON_EMPTY); 呼叫返回 立即我认为应该做的完全不是. 如果我添加了一个事件,则随着待处理的事件循环,直到它活跃起来,但是我希望不会发生的循环退出. 目标: 有一个命名的管道打开,libevent聆听阅读. 每当我 echo "something" > pipe 应调用注册回调.如果回调完成了,活动重新待会,循环等待另一个回声. 这是我到目前为止得到的:(省略错误检查) #include #include #include #include #include #include
我需要使用malloc创建事件,但是我不知所措,我想知道 是否允许它在其回调功能中释放事件,例如: struct event *pkt_ev = (struct event *)malloc(sizeof(struct event)); evtimer_set(&pkt_ev, timer_cb, &pkt_ev); event_base_set(base, &pkt_ev); event_add(&pkt_ev, timeout); 回调函数timer_cb(): timer_cb(int fd, short ev, void* arg){ ....... free(arg); // here the arg is &pkt_ev } 我最初的想法是:调用回调函数timer_cb()后,libevent将隐式调用event_del(&pkt_ev).但是,由于我将&pkt_ev释放到回调中,因此event_del(&pkt_e
我使用NICE LIBEVENT库在单独的线程中实现了一个很小的Web服务器. Web服务器运行Event_base_dispatch()来处理所有事件.我需要的是一种从主线程中分解此调度循环的方法. 它归结为以下C ++代码: #include #include #include #include struct event_base *eb; std::thread t; static volatile sig_atomic_t bailout = false; void my_signal_handler(int) { bailout = true; } void onRequest(evhttp_request *req, void *) { struct evbuffer *OutBuf = evhttp_request_get_output_buffer(re
我试图将液化性交叉与Android交叉,我想知道我做错了什么并获得了一些帮助. 我要构建的版本是libevent-2.0.19稳定 我开始遵循 http://warpedtimes.wordpress.com/2010/02/02/03/building-open-source-libraries-with-android-ndk/ 和如何将makefile重写为android.mk? 目标装置是一个运行Cyanogenmod 7 的三星Galaxy S2 几次尝试后,我做的最好的是运行以下步骤: 1) Install android NDK and download libevent source code 2) Android NDK downloaded and running in ~/android-ndk/android-ndk-r8b 3)执行: export ANDROID_ROOT=~/android-ndk/android-nd
这是我发现的相关问题的后续这里. 在链接的问题中提到了使用 signalfd() 并将该 fd 与 libevent 一起使用.在那个问题中,OP 没有列出他为什么使用 signalfd() 而不是 libevent 信号处理设施. 在这两种方法中,您都将在信号处理程序之外处理回调. 本文档似乎警告在信号事件回调.这似乎不对(因为我们将在信号处理程序上下文之外).除了上述警告之外,我看不到使用 signalfd() 执行此操作的好处. 关于两种方法之间的差异或警告的任何输入 谢谢! 解决方案 来自libevent的源代码(v2.0.19-stable) /* 信号.c 这是我们用于后端的信号处理实现没有更好的方法来进行信号处理.它使用 sigaction()或 signal() 来设置一个信号处理程序,以及一个套接字对来告诉事件库何时 注意我说的是“事件库":只能设置一个事件库最多一次使用它.由于历史原因和落后兼容性,如果您将信号的
问 题 知道libevent支持 select/poll/epoll时间模型。 今天突然想到 封装了libevent底层操作的 event_* 系列函数是使用了那种事件模型呢 解决方案 #ifdef HAVE_EVENT_PORTS extern const struct eventop evportops; #endif #ifdef HAVE_SELECT extern const struct eventop selectops; #endif #ifdef HAVE_POLL extern const struct eventop pollops; #endif #ifdef HAVE_EPOLL extern const struct eventop epollops; #endif #ifdef HAVE_WORKING_KQUEUE extern const struct eventop kqops; #endif #ifdef HAVE