相关文章推荐
温柔的汉堡包  ·  编译OpenJDK12:methodMatc ...·  7 月前    · 
忧郁的大葱  ·  点击编辑按钮,编辑按钮下方的文本框变为可编辑 ...·  9 月前    · 
绅士的烈马  ·  CALL SYMPUT与CALL ...·  1 年前    · 
刚失恋的投影仪  ·  有关TABCONTROL选项卡的动态选择方法 ...·  1 年前    · 
任性的钥匙扣  ·  《Bootstrap5零基础到精通》第14节 ...·  1 年前    · 
小百科  ›  Errno 9: Bad file de开发者社区
谈吐大方的跑步鞋
10 月前
py3study

Errno 9: Bad file de

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
py3study
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > Errno 9: Bad file de

Errno 9: Bad file de

作者头像
py3study
发布 于 2020-01-06 16:51:37
2.6K 0
发布 于 2020-01-06 16:51:37
举报
文章被收录于专栏: python3 python3

写了一个循环检测端口的程序,循环的次数多了,会报Errno 9: Bad file descriptor in python socket错误。程序如下:

代码语言: javascript
复制
def Scan_port(host,port):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #socket.setdefaulttimeout(10)
    s.settimeout(10)
    t = 1
    while 1:
            s.connect((host,port))
            s.close()
            break
        except socket.error, e:
            s.close()
            if t > 3:
                print e
                break
            else:
                t = t + 1
                time.sleep(1)

socket连接超时时间为10s,超时之后重试3次,3次依然连接不到或是超时,则抛错。这个函数加入到多线程,多个主机时就会报Errno 9: Bad file descriptor in python socket错误。查找了材料,都说是s.close()在循环里面是主线问题的主要原因,不管s.close()在循环中的那个位置都会出现这个错误。后修改了这段代码如下:

代码语言: javascript
复制
def Scan_port(host,port):
    t = 1
    while 1:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #socket.setdefaulttimeout(10)
        s.settimeout(10)
                s.connect((host,port))
                s.close()
                break
            except socket.error, e:
                s.close()
                if t > 3:
 
推荐文章
温柔的汉堡包  ·  编译OpenJDK12:methodMatcher.cpp error C2220 警告被视为错误 - 没有生成“object”文件-阿里云开发者社区
7 月前
忧郁的大葱  ·  点击编辑按钮,编辑按钮下方的文本框变为可编辑_点击修改按钮,表格对应行变成文本框可编辑-CSDN博客
9 月前
绅士的烈马  ·  CALL SYMPUT与CALL SYMPUTX区别_sas call symputx_xiaotianlan的博客-CSDN博客
1 年前
刚失恋的投影仪  ·  有关TABCONTROL选项卡的动态选择方法-阿里云开发者社区
1 年前
任性的钥匙扣  ·  《Bootstrap5零基础到精通》第14节 Bootstrap5滑动导航组件用法 - 掘金
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号