【发布时间】:2016-05-17 04:25:35
【问题描述】:
我正在构建一个端口扫描程序((与问题无关,只是解释背景)),我知道主机的IP,但不知道打开了哪些端口。因此,扫描。
它处于开发的早期阶段,因此错误处理很糟糕,但还不足以让 Python 这样做的原因可以解释。
它尝试连接到,例如,123.456.7.8, 1。显然这是一个可笑的端口打开,所以它会抛出一个错误。错误是No Route to Host 之类的,对吧?错误的!而是Operation Timed Out!。
好的,让我们增加超时,以防我的计算不正确。
。 .. ... ....所做的只是冲洗并重复!
大约 20 分钟后,超时时间为 20 秒,而它仍然正在超时。真的吗?为什么 python 会引发 timed out 错误,而不是 No route to host! 或类似错误?
我需要区分超时和连接失败,因为有迟到和无处的区别。这阻止了我这样做,造成了快点等待的无限循环。
我该怎么办?我该去哪里?
【问题讨论】:
-
我要去哪里?所以!我该怎么办?发布演示问题的代码的精简版本! ;)
-
这不是 MyCode 问题,这是 PyCode 问题! ;)
-
如果是 python 问题,那么您将不得不发布错误修复请求。但是,如果您的代码有问题,那么您应该创建一个最小、完整和可验证的示例。请参阅:stackoverflow.com/help/mcve 您可能会发现,在此过程中,您会找到自己的解决方案。
-
好的。让我们再试一次。这不是任何地方的错误。这是个问题。我在问为什么会这样,是否有解决方案。这就是 SO 的工作原理,不是吗?
-
无法看到您正在尝试做什么以及您是如何做的,您是在让我们猜测问题所在。 SO 的一个重要原则是,如果您有一个问题,您需要向阅读您的问题的人提供最低限度的导致问题的代码,最好是“最小、完整和可验证的示例”。这就是 SO 的工作原理。
标签: python python-2.7 sockets timeout