ChinaUnix.net
相关文章推荐:

Libev libevent 效率

简介

许多服务器部署(尤其是 web 服务器部署)面对的最大问题之一是必须能够处理大量连接。无论是通过构建基于云的服务来处理网络通信流,还是把应用程序分布在 IBM Amazon EC 实例上,还是为网站提供高性能组件,都需要能够处理大量并发连接。

一个好例子是,web 应用程序最近越来越动态了,尤其是使用 AJAX 技术的应用程序...

by admin126com - Web开发 - 2011-12-19 14:02:53 阅读(1251) 回复(0)

相关讨论

libvent 1.4.x是非线程安全的,要跨线程执行event_add,会有问题。 因此传统做法是通过pipe来通知宿主线程执行event_add操作。 libevent 2.0.x通过线程锁做到了线程安全,可以跨线程执行event_add。 感觉pipe的开销比线程锁要大一些,我在考虑是否将pipe通知的做法改为libevent 2.0.x内置的线程锁方式。 希望有这方面经验的朋友分享一下经验,谢谢!

通知

by happy_fish100 - C/C++ - 2012-11-10 11:23:13 阅读(5595) 回复(5)

最近在看一个开源的项目, 其中使用了libevent 库, 想仔细的学习下, 在网上仅仅搜到一下简单的实例 ,还有就是一个libevent源码分析。 在看源码的过程中,一般是遇见一个函数,就去头文件查这个函数的意思,感觉不是很透彻。 我这里仅仅是使用它, 大家有知道更好的资料不? 比如稍微复杂一点的讲解。

by aobai - C/C++ - 2010-10-25 13:27:50 阅读(1615) 回复(1)

libevent的事件回调函数中close不发送FIN序列,不知道大家有没有遇到这个问题。。。。 不知道为什么?????

by zsniper - C/C++ - 2007-10-26 11:24:28 阅读(1708) 回复(0)

成功从源代码构建libev后,编译文档中的例子也成功,但是运行就报错:Segmentation fault。 后来发现,原来是链接库问题,自己对这方面不熟,也没注意构建libev过程中的重要提示: Libraries have been installed in: /data/www/haifeng.li/mgc/script/scgi/libev/libev/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and spe...

by hshq_cn - Linux文档专区 - 2009-10-27 18:21:50 阅读(1970) 回复(0)

libev的reactor模式的读写通过回调实现,一般为了不阻塞loop,把socket设置成non-block模式。 一般的业务流程是: 在read_callback中接收协议数据---处理数据---设置write_event,然后在write_callback中发送处理后的结果。 现在的问题是,处理数据的时间较长,为了不影响loop,不放在read_callback中处理,塞入队列,由另外一个线程去pop队列并处理,但处理部分需要发送处理后的结果, 一个方法是可以在处理线程中设置对应的ev_io的...

by jetking - C/C++ - 2012-05-23 17:05:55 阅读(4790) 回复(4)

今天用libevent写了个httpserver 的程序,启动之后监听0.0.0.0 ,全部iP,但是只能响应本地的请求,同一个ip段的其他机器发请求,连接不到,curl提示连接不到主机。但是在有的机器上可以,两台机器使用的库不一样啊 linux-vdso.so.1 => (0x00007fff69dff000) libpthread.so.0 => /lib64/libpthread.so.0 (0x000000399ea00000) libdl.so.2 => /lib64/libdl.so.2 (0x000000399e600000) librt.so.1 => /lib64/librt.so.1 (0x0000...

by zero_coder - 服务器应用 - 2013-07-22 23:07:50 阅读(759) 回复(0)

本帖最后由 kdkgod 于 2013-06-20 17:54 编辑 libevent可以不可以做一个http客户端,发送post请求,发送get请求很easy,我也会!发送post请求可以不可以,如何发?! 我请java中的httpclient很容易就发送post数据,libevent就不支持发送post数据吗?! 请大牛指点! 谢谢!

by kdkgod - C/C++ - 2013-06-22 17:12:08 阅读(4670) 回复(5)

高并发下libevent开发的程序,有可能进入死循环,然后客户端无法连入。 strace看到的情况是:[code] clock_gettime(CLOCK_MONOTONIC, {8078, 581490395}) = 0 rt_sigprocmask(SIG_SETMASK, ~[], ~[ILL TRAP BUS FPE KILL SEGV STOP], 8) = 0 rt_sigtimedwait(~[], 0x403989e30, {0, 0}, 8) = -1 EAGAIN (Resource temporarily unavailable) rt_sigprocmask(SIG_SETMASK, ~[ILL TRAP BUS FPE KILL SEGV STOP], NULL, 8) = 0...

by lein1 - C/C++ - 2012-11-28 11:36:35 阅读(1738) 回复(1)

小弟接触libevent不久,遇到一个麻烦难题,请大牛赐教,先谢过 正常流程 init event_set event_add event_dispatch(); 自我感觉 event_dispatch();是关键,相当于不断loop 是不是说,event_dispatch();在一个进程必须而且只能有一个,而且放在最后。如果event_dispatch();之后我还想add一个event怎么办?比如定时器,我需要不断的新加event,该怎么解决,如何进行动态的增加,必须是开始就设定好,然后loop吗?一旦event_dispatch...

by nr12345 - C/C++ - 2012-08-18 22:57:39 阅读(1301) 回复(2)

结构体evhttp_request中struct evhttp_connection * evcon 保存着连接上来的用户信息。包括其client fd,remote ip,等等。。 库没有提供直接访问客户端fd的函数,使用 req->evcon->fd 出错。。 error: dereferencing pointer to incomplete type 求解。。 怎么获取client fd?

by cnsclsyangbo - C/C++ - 2011-08-21 10:54:08 阅读(3509) 回复(3)