Python 这个 socket.gaierror 是什么意思?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/15246088/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What does this socket.gaierror mean?
提问by user2139635
I'm new to python and going through a book, Core Python Applications 3rd Edition. This is the the first example and already I'm stumped with it. Here's the code with the error at the end.
我是 Python 新手,正在阅读《Core Python Applications 3rd Edition》一书。这是第一个例子,我已经被它难住了。这是最后出现错误的代码。
#!/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
What does this mean?
这是什么意思?
回答by NPE
The
这
HOST = ' '
should read
应该读
HOST = ''
(i.e. no space between the quotes).
(即引号之间没有空格)。
The reason you're getting the error is that ' 'is not a valid hostname. In this context, ''has a special meaning (it basically means "all local addresses").
您收到错误的原因是该' '主机名无效。在这种情况下,''具有特殊含义(它基本上意味着“所有本地地址”)。
回答by glglgl
It means that your given host name ' 'is invalid (gai stands for getaddrinfo()).
这意味着您给定的主机名' '无效(gai 代表getaddrinfo())。
As NPE already states, maybe an empty string ''would be more appropriate than a space ' '.
正如 NPE 已经指出的那样,空字符串''可能比空格更合适' '。

