sockets, gethostname() changing

half.italian at gmail.com half.italian at gmail.com
Fri May 25 16:04:10 EDT 2007


On May 24, 8:04 pm, 7stud <bbxx789_0... at yahoo.com> wrote:
> Hi,
>
> I'm experimenting with a basic socket program(from a book), and both
> the client and server programs are on my computer.   In both programs,
> I call socket.gethostname(), but I discovered that when I am connected
> to the internet, both the client and server hang and nothing happens.
> I discovered that the hostname of my computer automatically changes to
> that of my isp when I'm connected to the internet, and presumably the
> server program on my computer cannot listen on my isp's address(host,
> port).   Is there a way to make the hostname of my computer static, so
> that it doesn't change to my isp's hostname when I connect to the
> internet.  I'm using mac os 10.4.7.  Why does my computer's hostname
> dynamically change in the first place?
>
> server program:
> -------------------
> import socket
>
> s = socket.socket()
>
> host = socket.gethostname()
> print host
> port = 1274
> s.bind((host, port))
>
> s.listen(5)
> while("Ctrl-C hasn't been entered"):
>     c, addr = s.accept()       #blocks and waits for client connection
>     print "Got socket connection from", addr
>     c.send("Thank you for connecting.  Now get lost.")
>     c.close()
>
> client program:
> -------------------
> import socket
>
> s = socket.socket()
>
> host = socket.gethostname()
> port = 1274
>
> s.connect((host, port))
> print s.recv(1024)
> s.close()

Try setting an environment variable for 'hostname' using this:
http://www.versiontracker.com/dyn/moreinfo/macosx/15073

Either way, its a good program to have.

~Sean




More information about the Python-list mailing list