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