Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

socket.gaierror: [Errno -2] Name or service not known

Guys i'm a newbie to the socket programming Following program is a client program which request a file from the server,But i'm getting the error as show below.. My input is GET index.html and the code is Can anyone solve this error...?

#!/usr/bin/env python

import httplib
import sys


http_server = sys.argv[0]

conn = httplib.HTTPConnection(http_server)

while 1:
cmd = raw_input('input command (ex. GET index.html): ')
cmd = cmd.split()

if cmd[0] == 'exit': 
    break


conn.request(cmd[0],cmd[1])


rsp = conn.getresponse()


print(rsp.status, rsp.reason)
data_received = rsp.read()
print(data_received)

conn.close()





input command (ex. GET index.html): GET index.html
Traceback (most recent call last):
File "./client1.py", line 19, in <module>
conn.request(cmd[0],cmd[1])
File "/usr/lib/python2.6/httplib.py", line 910, in request
self._send_request(method, url, body, headers)
File "/usr/lib/python2.6/httplib.py", line 947, in _send_request
self.endheaders()
File "/usr/lib/python2.6/httplib.py", line 904, in endheaders
self._send_output()
File "/usr/lib/python2.6/httplib.py", line 776, in _send_output
self.send(msg)
File "/usr/lib/python2.6/httplib.py", line 735, in send
  self.connect()
 File "/usr/lib/python2.6/httplib.py", line 716, in connect
  self.timeout)
File "/usr/lib/python2.6/socket.py", line 500, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known
like image 597
Naive Avatar asked Sep 19 '13 14:09

Naive


2 Answers

sys.argv[0] is not what you think it is. sys.argv[0] is the name of the program or script. The script's first argument is sys.argv[1].

like image 157
Christian Heimes Avatar answered Oct 19 '22 18:10

Christian Heimes


The problem is that the first item in sys.argv is the script name. So your script is actually using your filename as the hostname. Change the 5th line to:

http_server = sys.argv[1]

More info here.

like image 31
nofinator Avatar answered Oct 19 '22 19:10

nofinator