问题标签 [libevent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - libevent:未初始化的结构指针
我在代码中有结构指针
现在我调用一个函数来填充结构中的一些信息。
我在这条线上遇到分段错误。这样做的正确方法是什么。谢谢
c++ - libevent:如何覆盖标头包含
我的代码中包含了这个
它应该包含 libevent 的头文件 event.h。但是当我看到包含文件的列表时,它包含了这个头文件
如何告诉 msvc 编译器加载 libevents event.h 头文件?. 谢谢
libevent - 在windows上获取正确系统路径的方法
我使用 libevent 构建了一个简单的 http 服务器。访问资源(在我的情况下为文件夹)的方式是
使用解码的 url 提取资源的路径。它在 Linux 上运行良好,因为请求是这样的
但在 window$ 请求是
这导致解码的 url 为/c:/users/vickey/folder。它可以手动删除前导斜杠以纠正问题。但是,由于我在我的代码中使用和学习 boost 库,我想知道是否有这种实现?我尝试使用 native() 和 relative_path()。谢谢。
sockets - Libevent 中的未决事件和活动事件有什么区别?
我正在学习如何使用 Libevent。虽然我无法理解挂起和活动之间的区别。在我看来,当一个事件被添加到 event_base 并且该事件还没有发生时,它处于挂起状态,而调用者等待的事件发生了,然后处于活动状态,对吗?但是,当我阅读描述时event_pending
,看到代码爆炸,它说当事件挂起时,改变内部状态是不好的它,我认为这里的“待定”一词是误解,它应该是“event_active”....我错了吗?
c - 使用 libevent 在 C 中的 TCP 端口事件回调
长话短说,我在 C 中实现了一个混合网络。为此,我创建了几个单独的守护进程,它们侦听一段 TCP 端口(比如 31001-31008),在这些端口上接收数据并将其放入到一个缓冲区(比如 TCP 端口 31002 --> char *data[2]),然后最终将数据写到另一组端口(比如 51001-51008)到列表中的下一个守护进程。
有了这个,这就是我的困惑!我在这里和其他地方做了很多阅读,并决定最简单的方法是使用 libevent2。我基本上是从这个开始的(在页面底部):http ://www.wangafu.net/~nickm/libevent-book/Ref8_listener.html ...除了我打开 8 个端口而不是 1 个。
问题:我已经阅读了手册,但我对如何确定数据来自哪个端口有点困惑。例如,如果我在端口 31004 上接收数据,我想知道将其写入数据 [4]。
我想过为我打开的每个端口创建一个不同的回调,但这变得很难看。有没有更简单的方法?
这是我想要完成的一些伪代码,请随时提出建议!我也考虑过用 python 之类的东西来做这件事,但似乎 python 在事件方面也有同样的问题。
c - 结构数组 - 数组具有不完整的元素类型(在 C 中)
这似乎是一个容易解决的问题,但我做错了什么。我已经经历了所有类似的线程,但没有找到任何解决我问题的方法,所以任何帮助将不胜感激!
基本上:C 程序,我正在尝试创建一个缓冲区事件数组。
当我尝试编译(使用 -levent,我可能会添加)时,我收到此错误:
src/mix/mix1.c:57:34: error: array type has incomplete element type
有任何想法吗?:(
注意:我在 main 之外定义了缓冲区事件,以使它们在我的代码中的任何地方都可以访问,而无需传递它们。我在该地区还有其他#define,所以我确定这与我构建它们的方式有关?
c - 如何修改Libevent中注册的事件?
我像这样使用libevent,
但是我不知道怎么修改m_event的事件,官方手册好像没有接口可以操作,我试过这样做,但是做核心转储。
核心转储发生在 event_assign,请帮助我...如何修改结构事件的注册事件?
c - Libevent:如何暂时禁用,然后重新启用 EV_READ?(在 C 中)
我正在使用 libevent 处理一组端口上的数据接收。我想要完成的行为是这样的:
-假设我有一组端口,1001-1004 -读取端口上的数据,例如 1001。 -一旦回调被击中,禁用此端口 (1001) 上的进一步读取。- 一旦所有端口都接收到数据,将它们全部重新打开以进行读取。
现在我有一个缓冲区事件结构:
我像在文档中显示的那样设置了侦听器:
然后我给了它一个 READ 回调:
在我的“处理”功能中,我告诉它这样做:
最后...
任何想法我做错了什么?当我将数据发送到随机端口时,我仍然能够发送更多、更多、更多。
蒂亚!
events - epoll/libevent/libev 可以和 UDT 一起工作吗?
我正在构建一个需要处理数万个活动套接字的高并发服务器。我最初使用 epoll 来构建一个基于事件的服务器,它在中等规模(数千个活动套接字)下运行良好。但是当我的并发超过 10,000 个套接字时,它似乎变得不稳定。所以我正在考虑 libevent(或 libev),因为它是一个成熟的项目,并声称能够“处理数万个活动套接字”。
我也在考虑使用 UDT,因为它是一个“可靠的 UDP”,并且由于开销和内存使用,我开始遇到 TCP 问题。所以一个很自然的想法是使用 libevent 作为我的事件框架工作,使用 UDT 作为传输协议。我知道 UDT 提供了自己的一组 epoll 操作。这是否意味着它不能与常规的 linux epoll 一起使用?如果是这样,它将无法与 libevent 或 libev 一起使用,因为它们是基于 Linux epoll 构建的。
有没有人在 UDT 和 epoll / libevent / libev 上工作过?UDT 可以与它们中的任何一个一起使用吗?
任何帮助将不胜感激。谢谢。
libevent - 如何在 bufferevent_socket_connect 期间出错时在事件处理程序中获取对等地址?
在 bufferevent_socket_connect 期间发生错误时,我没有找到在事件处理程序中打印对等方地址的方法。有人可以帮忙吗?
我尝试了什么:
在 bufferevent_getfd() 上使用 getpeername() 失败,因为未建立连接
在事件处理程序的最后一个参数中传输对等点的地址也失败了,因为该指针在下一次连接尝试到另一个对等点时发生变化。
代码示例: