【问题标题】:How can i handle [WinError 10057] error in python?如何处理 python 中的 [WinError 10057] 错误?
【发布时间】:2020-05-28 11:12:33
【问题描述】:

练习一:改变socket程序socket1.py来提示用户 用于 URL,以便它可以读取任何网页。您可以使用 split('/') 来 将 URL 分解为其组成部分,以便您可以提取主机 套接字连接调用的名称。使用 try 和添加错误检查 除了处理用户输入不正确的情况 格式化或不存在的 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 调用在数据报套接字上发送时)未提供地址

你能帮帮我吗?为什么代码返回我这个错误?没有其他新功能怎么解决?

【问题讨论】:

    标签: python sockets networking


    【解决方案1】:
        mysock.connect(('host', 80))
    

    应该是

        mysock.connect((host, 80))
    

    【讨论】:

    • 您还应该使用 format() 或 f 字符串更好地格式化发送函数参数
    • 你能解释一下吗,我是 coursera 课程,我不知道我是否应该学习更多,bcz 当我通过互联网阅读时,socket 有很多功能我根本不知道。
    • 如果你想在 discord ShadowMuffin#6671 上加我,我可以帮你详细解答
    猜你喜欢
    • 2019-09-04
    • 2015-05-06
    • 2023-03-31
    • 2019-07-05
    • 2021-08-17
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多