Сокеты Python внезапно отключились?

Сегодня я вернулся к старому скрипту, который у меня был для входа в 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

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

Какая это версия Python?

Jim 18.09.2008 18:12

Пожалуйста, укажите дополнительную информацию. Я не могу воспроизвести вашу проблему.

Mo. 18.09.2008 18:44

Платформа тоже поможет.

Nicholas Riley 18.09.2008 18:48
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
13
3
5 210
3

Ответы 3

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

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'

Работает отлично. Я не могу воспроизвести вашу ошибку.

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

Другие вопросы по теме