Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does this socket.gaierror mean?

Tags:

python

tcp

errno

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.

#!/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?

like image 448
user2139635 Avatar asked Mar 06 '13 11:03

user2139635


2 Answers

It means that your given host name ' ' is invalid (gai stands for getaddrinfo()).

As NPE already states, maybe an empty string '' would be more appropriate than a space ' '.

like image 103
glglgl Avatar answered Sep 18 '22 13:09

glglgl


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").

like image 41
NPE Avatar answered Sep 21 '22 13:09

NPE