[python3]socket.gaierror: [Errno 11001] getaddrinfo 失败

时间:2021-01-24 07:33:48

标签: python sockets

我知道这个问题有很多类似的答案,使用VPN并从防火墙中取消阻止, 但尝试了所有,似乎没有任何效果。所以,我把这个问题作为最后的手段。

我是 Python 新手,我尝试了他们所说的,但不理解我找到的答案背后的理论。 规格: 窗户 10. 蟒蛇 3.8。

编辑: 绑定(s.bind())时出现错误。

代码如下:

import socket

class server():
hostname = socket.gethostbyname(socket.gethostname())
port = input("Enter port(8080 is default): ")

if port == '':
    port = 8080
else:
    port = int(port)
print(socket.getaddrinfo(hostname, port))

if socket.has_ipv6:
    s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
else:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind((hostname, port))
s.listen()


while True:

    (clientConnected, clientAddress) = s.accept()

    a = input("{0} is Trying to connect on port {1}\n Do want to Accept request:(Yes/y/No/n): ".format(hostname, port))

    if a == 'Yes' or a == 'y':
        print("You are connected to " + hostname)
        clientConnected.send("Succesful".encode())
        break
        # break

    if a == 'No' or a == 'n':
        print("Quitting.......")
        s.close()

    else:
        print("Invalid request .. \n Try again")
        continue


if __name__ == "__main__" :
sever().run()

输出:

C:\Users\Haseeb\AppData\Local\Programs\Python\Python38\python.exe "D:/Product Code_ 037396/Python/Tv_Remote/Server_1.py"
Enter port(8080 is default): 
Traceback (most recent call last):
File "D:/Product Code_ 037396/Python/Tv_Remote/Server_1.py", line 3, in <module>
[(<AddressFamily.AF_INET: 2>, 0, 0, '', ('127.0.0.1', 8080))]
class server():
File "D:/Product Code_ 037396/Python/Tv_Remote/Server_1.py", line 18, in server
s.bind((hostname, port))
socket.gaierror: [Errno 11001] getaddrinfo failed

Process finished with exit code 1

我应该如何解决这个问题?
谢谢。

0 个答案:

没有答案