【问题标题】:What could be the reason for a socket error "[Errno 9] Bad file descriptor"套接字错误“[Errno 9] Bad file descriptor”的原因可能是什么
【发布时间】:2013-06-16 22:06:08
【问题描述】:

我有一个复杂的 python (2.7.3) 脚本试图通过

打开一个套接字连接
self.socket.close()
# doing something else
self.socket.connect((host, port))

但我得到的只是以下套接字错误:

error: [Errno 9] Bad file descriptor

host:port 接受连接,因为我已经手动使用nc host port 验证了这一点。那么,我在打开与给定端口的连接时收到此错误的可能原因是什么,这实际上是有效的?

我不能也不会发布完整的脚本,因为它对于这个问题来说太复杂和无关紧要了。我只想知道这个错误的所有可能原因,以及如何检查和修复它们。

【问题讨论】:

  • 阅读socket.close() 的文档。一旦你关闭它,你就不能在任何操作中重复使用它(包括connect)。它需要通过调用socket.socket 重新初始化。

标签: python sockets python-2.7


【解决方案1】:

您需要创建一个新的套接字对象。可能是self.socket = socket.socket() 在关闭前一个套接字之后和连接之前。

【讨论】:

  • 邦戈就是这样!非常感谢。
猜你喜欢
  • 2021-12-05
  • 1970-01-01
  • 2011-12-02
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 2016-04-15
  • 2019-08-19
  • 2023-01-24
相关资源
最近更新 更多