sockets, gethostname() changing

7stud bbxx789_05ss at yahoo.com
Thu May 24 23:04:04 EDT 2007


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()




More information about the Python-list mailing list