Je suis nouveau à python et en parcourant un livre, Core Python Applications 3rd Edition. Ceci est le premier exemple et déjà je suis perplexe avec lui) Voici le code avec l'erreur à la fin.
#!/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
Qu'est-ce que ça veut dire?
Cela signifie que votre nom d'hôte donné ' '
N'est pas valide (gai signifie getaddrinfo()
).
Comme NPE l'indique déjà, une chaîne vide ''
Serait peut-être plus appropriée qu'un espace ' '
.
Le
Host = ' '
devrais lire
Host = ''
(c'est-à-dire pas d'espace entre les guillemets).
La raison pour laquelle vous obtenez l'erreur est que ' '
n'est pas un nom d'hôte valide. Dans ce contexte, ''
a une signification particulière (cela signifie essentiellement "toutes les adresses locales").