Python套接字在OS X Mavericks上连接超时

时间:2014-09-22 17:04:56

标签: python macos osx-mavericks

我刚买了一台Macbook Pro,我遇到了一些在Windows和Linux上运行良好的python代码问题。该问题出现在Rackspace's Flanker项目中。

我已将问题提炼到这个简短的测试脚本中。

import socket

host = 'gmail-smtp-in.l.google.com'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(1.0)
s.connect((host, 25))
s.close()

这在Windows和Linux上运行良好(没有输出完成),但它在我的Mac上抛出异常(超时)。我已经要求朋友在他的Mac上运行此操作,导致同样的超时。

Traceback (most recent call last):

  File "test.py", line 11, in <module>

    s.connect((host, 25))

  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth

    return getattr(self._sock,name)(*args)

socket.timeout: timed out

我认为这可能是OS X网络配置问题。我使用的是Python 2.7.5,这是我安装的库存,但我也尝试过2.7.8。


其他信息1:

根据admdrew的建议,Netcat(nc -vv gmail-smtp-in.l.google.com 25)会产生以下结果。

nc: connectx to gmail-smtp-in.l.google.com port 25 (tcp) failed: Operation timed out
nc: connectx to gmail-smtp-in.l.google.com port 25 (tcp) failed: No route to host

所以它当然不是特定于python。


其他信息2:

我已经意识到我的linux VM上的netcat和它的Windows版本都失败了。因此,我确信FIOS正在阻止端口25.所以问题就变成了,&#34;为什么Python的套接字在Windows上连接成功,但在OS X上失败,当端口25被阻塞时根据NETCAT&#34;

全部,谢谢你的帮助。

0 个答案:

没有答案