问题标签 [libev]

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.

0 投票
2 回答
1214 浏览

networking - kqueue的限制是什么?

libev ( source ) 的文档说:

Kqueue 值得特别一提,在撰写本文时,它在除 NetBSD 之外的所有 BSD 上都被破坏(通常它不能可靠地与套接字和管道一起工作,除了在 Darwin 上,它当然完全没用)。

它还提到:

kqueue 系统调用在所有已知版本中都被破坏 - 大多数版本仅支持套接字,许多支持管道。

那么,kqueue 有哪些限制呢?这些限制记录在哪里?最初的研究发现了对旧操作系统(Mac OS X 10.3)上内核恐慌的引用以及对不正确/不完整文档的抱怨。我不知道这些消息来源有多可靠。

特别是,如果 kqueue 确实可以可靠地使用套接字(AF_UNIX、AF_INET 和 AF_INET6),那么我不介意。我对有关 Mac OS X 和 FreeBSD 实现的信息特别感兴趣。

0 投票
3 回答
1065 浏览

windows - Node.js 是否可以在 Windows 上用于生产?

在新的 0.5.1 分支中,有一个 Node.js 的官方 Windows 可执行文件。Linux 版本的 Node.js 使用已建立的库,例如 v8、libev、libeio。

由于 libev 和 libeio 适用于 *NIX 平台;Node.js 的 Windows 端口是否已准备好用于生产,还是仅用于开发?

0 投票
3 回答
29350 浏览

macos - 如何增加 osx 上的套接字限制以进行负载测试?

我正在创建一个负载测试器,它使用 libev 为我正在开发的应用程序创建大量打开的 tcp 连接。由于 nofiles 限制,目前它在 256 个连接处爆炸:

我可以通过执行以下操作将其增加到 1024:

但我不能进一步增加它。理想情况下,我想将其设置为 1048576。它给出以下错误:

如何在 osx 上进一步增加 ulimit?

0 投票
3 回答
11067 浏览

c++ - Windows 上的 Libev

考虑libeventvs. libev_ 该libev库是否在 Windows 上具有对 IOCP 的本机支持?

0 投票
3 回答
1166 浏览

c++ - 在 C 代码中使用 boost::bind() 会起作用吗?

我可以boost::bind(mycallback, this, _1, _2)跨 C 代码使用吗?

更新

简短的回答是no,boost bind 不返回可以在 C 代码中调用的函数指针,而是一个仿函数(具有重载运算符的 C++ 对象()),请参见下面的答案。

0 投票
2 回答
1101 浏览

boost-thread - Hiredis、libev 和 boost:threads

尝试使用hiredis 和libev 库编写一个简单的Redis 客户端。一切都很顺利,除了停止事件循环 - m_thread.join() 刚刚卡住。将所有初始化的东西移到新创建的线程上什么都不做。

这是我的代码的一部分:

0 投票
1 回答
4715 浏览

c++ - 带有 libevent/libev 的 C 或 C++:监视 unix 套接字

我正在尝试监视一个 unix 套接字(“/tmp/mysocket”)。

我可以在 Node.js 中很好地做到这一点:当 1) 绑定套接字、2) 有人连接到套接字、3) 将数据发送到套接字和 4) 套接字断开连接时,它会引发一个事件。

我现在正尝试在 C/C++ 中执行此操作:我想监视“/tmp/mysocket”的上述事件。我查看了 libevent(我更喜欢使用它),但看到它需要一个 IP:端口。有什么方法可以监控 unix 套接字?

或者任何人都可以建议另一个 C/C++ 解决方案?

0 投票
1 回答
653 浏览

c - C/libev:触发事件时程序关闭

我有以下 libev 代码:

一切正常(几乎)。编译:gcc file.c -lev,然后运行./a.out。然后写入./a.out正在侦听的套接字:echo "gobblydeegook" | nc -U /tmp/mysocket

Hello 按预期出现在控制台上。

但是程序调用了这个事件,然后它不断地打印“hello”ad-infinitum!我希望它继续监视这个 unix 套接字的写入。这该怎么做?

0 投票
2 回答
41826 浏览

libevent - libev 和 libevent 有什么区别?

这两个库都是为异步 i/o 调度而设计的,并且都在 linux 上使用 epoll,在 FreeBSD 上使用 kqueue 等。

除了表面上的差异,我的意思是这两个库之间真正的区别是什么?关于建筑,或设计理念?

0 投票
3 回答
4022 浏览

c - Libev - I/O 回调

我在 C/Linux 中有一个使用 TCP 套接字的聊天服务器。使用 libev 时,我可以为套接字的读取事件创建一个 ev_io 观察程序。就像是:

这很好用,因为只有在有数据要读取时才会触发读取事件。但是,我必须以不同的方式处理写入事件,因为即使我没有要写入的数据,它们也会不断触发。为了解决这个问题,我让我的 read_callback 只在有数据准备好写入时为写入数据创建一个 ev_io 观察者,然后 write_callback 将在发送消息后删除观察者。

这意味着每次我需要处理消息时,我都在分配、初始化、设置、观察、取消观察和解除分配写观察者。我担心我可能会不正确且低效地处理这个问题。

在 libev 中处理 write_callback 事件的最佳方法是什么?

提前致谢。