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. #1/usr/bin/env python
我是python的新手,经历了一本书,Core Python Applications第3版。这是第一个例子,我已经很难过了。这是最后有错误的代码。 #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
What does this mean?
这是什么意思?
2 个解决方案
#1
32
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已经陈述的那样,也许空字符串''比空格更合适''。
#2
14
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").
您收到错误的原因是''不是有效的主机名。在这种情况下,''具有特殊含义(它基本上意味着“所有本地地址”)。
#1
32
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已经陈述的那样,也许空字符串''比空格更合适''。
#2
14
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").
您收到错误的原因是''不是有效的主机名。在这种情况下,''具有特殊含义(它基本上意味着“所有本地地址”)。