当我尝试强制断开用户与我的自定义Python服务器的连接时,我得到了一个崩溃错误。我正在使用asyncore和asynchat类。
但是当我想要像这样强制断开连接时
asynchat.async_chat.close (self)我得到了这个错误:
asyncore.loop()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py", line 216, in loop
poll_fun(timeout, map)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py", line 145, in poll
r, w, e = select.select(r, w, e, timeout)
select.error: (9, 'Bad file descriptor')但仅限于Python Mac。在Windows上没有问题...
在asyncore.py类的代码源代码中有一个可执行文件。但是服务器崩溃了。
try:
r, w, e = select.select(r, w, e, timeout)
except select.error, err:
if err.args[0] != EINTR:
raise
else:
return太奇怪了。
发布于 2012-06-08 17:28:58
我在谷歌上找到了一个帖子:http://bytes.com/topic/python/answers/589612-asyncore-select-statement-problem
此问题仅在OS X上发生。
修改/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/asyncore.py,将use_poll的默认值从False设置为True
第207行:
def loop(timeout=30.0, use_poll=False, map=None, count=None):至
def loop(timeout=30.0, use_poll=True, map=None, count=None):https://stackoverflow.com/questions/10941649
复制相似问题