我正在使用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()中的地址是一個字符串,而不是元組 - 它也缺少一個端口號。 –