我在用xmpppy。我创建了50多个xmpp连接线程。过了一段时间,我发现了一个错误:
File "transports.py", line 199, in pending_datareturn select.select([self._sock],[],[],timeout)[0] ValueError: filedescriptor out of range in select()
为什么会这样?
抱歉说我的话。
发布于 2012-04-09 18:16:03
xmpppy使用选择()系统调用来监视打开的连接。不幸的是,select()有一个相当尴尬的事实--在大多数系统上,它只能使用文件描述符号来监视连接,最多可以达到一定的限制,通常是1024。
这意味着,随着您打开更多的文件和连接,最终您将达到极限。
解决方案是让xmpppy使用轮询()或更现代(但特定于操作系统)的API,如epoll或kqueue。所有这些都可以通过Python的“选择”模块访问。
https://stackoverflow.com/questions/10070146
复制相似问题