我正在使用python套接字连接到服务器以进行日志记录。服务器的IP地址是x.x.x.x
(我只是隐藏这个,x
可以是从0到255的数字),并且我的域名可以是www.example.domain.com
。我已经在/etc/hosts
与sudo
访问中编写了此x.x.x.x www.example.domain.com
。但是,当我尝试在我的程序中使用域名时,python套接字未能解析域名。为什么不能在这里解析域名?
import socket
mysocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
'''Block of code'''
mysocket.sendto('Hello!', 'www.example.domain.com')
mysocket.close()
这里的错误信息是:
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
如果我改变www.example.domain.com
以纯文本的主机名,如testLogger
,蟒蛇插座能解决这个问题。我可以在我的机器上使用ping
域名,所以我只是想知道为什么python套接字无法在这种情况下解析域名。
有什么错误? –
当您执行'socket.gethostbyname('www.example.domain.com')'时会发生什么? – birryree
在您更新的代码中,sendto()中的地址是一个字符串,而不是元组 - 它也缺少一个端口号。 –