问题说明
如果socket句柄是-1, select.select()在判断句柄状态时会报错 ValueError: file descriptor cannot be a negative integer (-1)
而eventlet的select模块没有处理这种异常
出现环境
windows、python3.8、eventlet 0.26 在使用eventlet开发socket程序时, 如果客户端强制中断连接,会出现如下错误
错误描述
exception: [WinError 10054] 远程主机强迫关闭了一个现有的连接。
...
ValueError: file descriptor cannot be a negative integer (-1)
解决办法
修改文件eventlet\hubs\selects.py,然后把eventlet重新打包
def wait(self, seconds=None):