python - xmppy。文件描述符超出选择范围

标签 python select xmpp

我正在使用xmpppy。我创建了超过 50 个 xmpp 连接线程。一段时间后我收到一个错误:

File "transports.py", line 199, in pending_data return select.select([self._sock],[],[],timeout)[0] ValueError: filedescriptor out of range in select()

为什么会发生这种情况?

附注抱歉我的语言。

最佳答案

xmpppy 使用 select()系统调用来监视打开的连接。不幸的是 select() 有一个相当尴尬的限制 - 在大多数系统上它只能监视文件描述符数量达到一定限制的连接,通常是 1024。

这意味着,随着您打开更多文件和连接,最终您将达到限制。

xmpppy 的解决方案是使用 poll() 或更现代的(但特定于操作系统的)API,例如 epoll 或 kqueue。所有这些都可以通过Python的'select' module访问.

关于python - xmppy。文件描述符超出选择范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070146/

相关文章:

python - 另一个 ImportError : attempted relative import with no known parent package

python - 在磁盘上存储 Python 字典的有效方法?

php - 从一个表中选择多个数据并使用PHP表单插入到另一个表中

javascript - XMPP:AngularJs + Strophe.js

swift - 未调用 XMPP 流代理? swift 3

python - 如何通过两点(直径端)画圆?

python - pgAdmin4 错误 : ModuleNotFoundError: No module named 'email_validator'

javascript - 与 JavaScript 生成的 HTML 交互

jquery - 使用选择选项填充输入=文本

java - 自动添加/同步联系人