Python сокеты внезапно истекают? - PullRequest
13 голосов
/ 18 сентября 2008

Я вернулся сегодня к старому сценарию, который у меня был для входа в Gmail через SSL. В прошлый раз, когда я запускал его (несколько месяцев назад), скрипт работал нормально, но теперь он сразу же умирает с:

<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

но я не могу воспроизвести первое, и после долгих шагов по коду я понятия не имею, что вызывает все это.

Ответы [ 3 ]

1 голос
/ 18 сентября 2008
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 голосов
/ 19 сентября 2008

Первое, что я хотел бы проверить - нужно ли вам подключаться через HTTP-прокси (в этом случае прямые подключения в обход прокси-сервера, скорее всего, прекратят работу). Запустите Wireshark и посмотрите, что произойдет.

0 голосов
/ 18 сентября 2008

www.google.com не доступен по HTTPS. Он перенаправляет на небезопасный HTTP. Чтобы попасть на почту, вам нужно идти https://mail.google.com

...