Как я могу обработать ошибку [WinError 10057] в python? - PullRequest
1 голос
/ 28 мая 2020

Упражнение 1: Измените программу сокета socket1.py так, чтобы она запрашивала у пользователя URL-адрес, чтобы он мог читать любую веб-страницу. Вы можете использовать split ('/'), чтобы разбить URL-адрес на составные части, чтобы вы могли извлечь имя хоста для вызова подключения к сокету. Добавьте проверку ошибок с помощью try и except для обработки условия, при котором пользователь вводит неверно отформатированный или несуществующий URL.

import socket
url = input('name:')
word = url.split('/')
host = word[2]
print(host)
try:
    mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    mysock.connect(('host', 80))
    mysock.send(('GET '+url+' HTTP/1.0\r\n\r\n').encode())

except:
    print ("Try your best")

while True:
    data = mysock.recv(512)
    if len(data) < 1:
        break
    print(data.decode(),end='')

mysock.close()

OSError: [WinError 10057] Запрос на отправку или получение данных был запрещен, поскольку сокет не подключен и (при отправке в сокет дейтаграммы с помощью вызова sendto) адрес не был предоставлен

не могли бы вы мне помочь? почему код возвращает мне эту ошибку? как я могу решить эту проблему без какой-либо другой новой функции?

1 Ответ

0 голосов
/ 28 мая 2020
    mysock.connect(('host', 80))

Должно быть

    mysock.connect((host, 80))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...