这个socket.gaierror是什么意思?

我是python的新手,阅读了一本书“核心Python应用程序第三版”。 这是第一个例子,我已经被困住了。 这是最后的错误代码。 #1 / usr / bin / env python

from socket import * from time import ctime HOST = ' ' PORT = 21567 BUFSIZ = 1024 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) while True: print 'waiting for connection...' tcpCliSock, addr = tcpSerSock.accept() print "...connected from:", addr while True: data = tcpCliSock.recv(BUFSIZ) if not data: break tcpCliSock.send("[%s] %s" % (ctime(), data)) tcpCliSock.close() tcpSerSock.close() Traceback (most recent call last): File "tsTserv.py", line 12, in <module> tcpSerSock.bind(ADDR) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 224, in meth socket.gaierror: [Errno 8] nodename nor servname provided, or not known 

这是什么意思?

这意味着你提供的主机名' '是无效的(gai代表getaddrinfo() )。

正如NPE已经指出的那样,也许一个空string''比空间更合适' '

 HOST = ' ' 

应该读

 HOST = '' 

(即引号之间没有空格)。

你得到错误的原因是' '不是一个有效的主机名。 在这种情况下, ''具有特殊的含义(它基本上是指”所有本地地址“)。