【发布时间】:2018-12-18 14:00:48
【问题描述】:
socket 模块中的所有东西都在工作,但是socket.get host by name 给出了一个不希望的错误。
这是客户端代码:
import socket
s = socket.socket()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostbyname("DESKTOP-HC36K46")
port = 1122
s.connect((host,port))
print("CONNECTED TO SERVER")
while True:
data = s.recv(2)
print(str(data))
data = str(data)
if(data == "b'w'"):
print("W")
elif(data == "b's'"):
print("S")
elif(data == "b'a'"):
print("A")
elif(data == "b'd'"):
print("D")
elif(data == "b'wa'"):
print("WA")
elif(data == "b'wd'"):
print("WD")
elif(data == "b'sa'"):
print("SA")
elif(data == "b'sd'"):
print("SD")
这段代码在 Windows PC 上运行良好,但是当我尝试在 Linux(Raspbian 或 Kali Linux)上运行它时,它给了我错误
socket.gaierror: [错误 -2] 名称或服务未知
我可以做些什么来解决这个问题?
【问题讨论】:
-
在 socket.gethostbyname() 调用后尝试打印主机。您的主机现在真的命名为“DESKTOP-HC36K46”吗?
-
您可能需要在
/etc/hosts(或本地DNS)中添加主机,以便libc可以解析它...