2008-09-18 45 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並查看會發生什麼。