2008-09-18 105 views
13

今天我回到了一个我通过SSL登录Gmail的旧脚本。该脚本工作的罚款我最后一次(几个月前)跑了,但现在它立刻死亡:Python套接字突然超时?

<urlopen error The read operation timed out> 

如果我设置超时(无论多久),它甚至更直接的死亡有:

<urlopen error The connect operation timed out> 

后者是可重复使用:

import socket 
socket.setdefaulttimeout(30000) 
sock = socket.socket() 
sock.connect(('www.google.com', 443)) 
ssl = socket.ssl(sock) 

返回:

socket.sslerror: The connect operation timed out 

但我似乎无法重现前者,并且在通过代码执行了很多步骤之后,我不知道是什么导致了这些。

+0

它是什么版本的Python? – Jim 2008-09-18 14:12:39

+0

请指定更多信息。我无法重现您的问题。 – 2008-09-18 14:44:23

回答

0

www.google.com无法通过HTTPS访问。它重定向到不安全的HTTP。要去邮件,你应该去https://mail.google.com

1
import socket 
socket.setdefaulttimeout(30000) 
sock = socket.socket() 
sock.connect(('www.google.com', 443)) 
ssl = socket.ssl(sock) 
ssl.server() 
--> '/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com' 

它工作得很好。我无法重现您的错误。

0

我要检查的第一件事是您是否需要通过HTTP代理进行连接(在这种情况下,绕过代理的直接连接可能会超时)。运行Wireshark并查看会发生什么。