如何在python select()中增加filedescriptor的范围
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在python select()中增加filedescriptor的范围,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1312字,纯文字阅读大概需要2分钟。
内容图文
![如何在python select()中增加filedescriptor的范围](/upload/InfoBanner/zyjiaocheng/722/293bf2ef80a9441cae5706d9d757509e.jpg)
我测试python socket编程.并修改如下所示的选项在Mac中
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 100000
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited
但是发生了以下错误.
Traceback (most recent call last):
File "ssub.py", line 63, in createMqttClient
rc = mqttc.loop()
File "/Library/Python/2.7/site-packages/mosquitto.py", line 633, in loop
socklist = select.select(rlist, wlist, [], timeout)
**ValueError: filedescriptor out of range in select()**
增加filedescriptor如何编写select()函数?
解决方法:
select()支持的文件描述符数量有限 – 最简单的解决方案是简单地使用poll(),而不受此限制的影响.
严格来说,select()受限于它可以支持的最高文件描述符,而不是给定调用中它们的数量 – 请参阅select() manpage的Notes部分的开头.我不确定OSX上的FD_SETSIZE是什么,但在Linux上它是1024.没有实用的方法来增加Python的这个限制.
顺便说一句,如果你想保持可移植性,你可以考虑使用类似于pyev的东西,这是一个围绕libev库的Python包装器,它使用在给定平台上等待IO的最佳方法.
内容总结
以上是互联网集市为您收集整理的如何在python select()中增加filedescriptor的范围全部内容,希望文章能够帮你解决如何在python select()中增加filedescriptor的范围所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。