By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
449,402 Members | 1,091 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 449,402 IT Pros & Developers. It's quick & easy.

question about python

P: n/a
I was working through a tutorial about how to write a server using
python (the url is bellow). I am sure that the server is working to
some degree because when the server is running localhost:8080 just
keeps trying to load until it times out. I would like to know how to
send information through the server to my browser?

I was working through this tutorial:
http://python.about.com/od/networkin...nWebServer.htm
and my final code is like this:

import socket

host = ''
port = 8080

c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

c.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

c.bind((host, port))

c.listen(1)

while 1:
csock, caddr = c.accept()
cfile = csock.makefile('rw', 0)

line = cfile.readline().strip()

cfile.write('HTTP/1.0 200 OK\n\n')
cfile.write('<html><head><title>Welcome %s!</title></head>' %
(str(caddr)))
cfile.write('<body><h1>Follow the link...</h1>')
cfile.write('All the server needs to do is ')
cfile.write('to deliver the text to the socket. ')
cfile.write('It delivers the HTML code for a link, ')
cfile.write('and the web browser converts it. <br><br><br><br>')
cfile.write('<font size="7"><center<a href="http://python.about.com/
index.html">Click me!</a</center></font>')
cfile.write('<br><br>The wording of your request was: "%s"' %(line))
cfile.write('</body></html>')

cfile.close()
csock.close()
Sep 13 '08 #1
Share this Question
Share on Google+
5 Replies


P: n/a
fishfin schrieb:
I was working through a tutorial about how to write a server using
python (the url is bellow). I am sure that the server is working to
some degree because when the server is running localhost:8080 just
keeps trying to load until it times out. I would like to know how to
send information through the server to my browser?

I was working through this tutorial:
http://python.about.com/od/networkin...nWebServer.htm
and my final code is like this:

import socket

host = ''
port = 8080

c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

c.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

c.bind((host, port))

c.listen(1)

while 1:
csock, caddr = c.accept()
cfile = csock.makefile('rw', 0)

line = cfile.readline().strip()

cfile.write('HTTP/1.0 200 OK\n\n')
cfile.write('<html><head><title>Welcome %s!</title></head>' %
(str(caddr)))
cfile.write('<body><h1>Follow the link...</h1>')
cfile.write('All the server needs to do is ')
cfile.write('to deliver the text to the socket. ')
cfile.write('It delivers the HTML code for a link, ')
cfile.write('and the web browser converts it. <br><br><br><br>')
cfile.write('<font size="7"><center<a href="http://python.about.com/
index.html">Click me!</a</center></font>')
cfile.write('<br><br>The wording of your request was: "%s"' %(line))
cfile.write('</body></html>')

cfile.close()
csock.close()
Do yourself a favor and look into the various python webframeworks such
as TurboGears, Django and what not.

Or at least into the module SimpleHTTPServer.

Diez
Sep 13 '08 #2

P: n/a
On Sep 13, 12:15 am, fishfin <calebjhan...@gmail.comwrote:
I was working through a tutorial about how to write a server using
python (the url is bellow). I am sure that the server is working to
some degree because when the server is running localhost:8080 just
keeps trying to load until it times out. I would like to know how to
send information through the server to my browser?

I was working through this tutorial:http://python.about.com/od/networkin...nWebServer.htm

and my final code is like this:

import socket

host = ''
port = 8080

c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

c.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

c.bind((host, port))

c.listen(1)

while 1:
csock, caddr = c.accept()
cfile = csock.makefile('rw', 0)
It looks like everything after this line needs to be indented.
Besides that, nothing jumps out at me, though I don't do direct socket
programming a lot.
line = cfile.readline().strip()

cfile.write('HTTP/1.0 200 OK\n\n')
cfile.write('<html><head><title>Welcome %s!</title></head>' %
(str(caddr)))
cfile.write('<body><h1>Follow the link...</h1>')
cfile.write('All the server needs to do is ')
cfile.write('to deliver the text to the socket. ')
cfile.write('It delivers the HTML code for a link, ')
cfile.write('and the web browser converts it. <br><br><br><br>')
cfile.write('<font size="7"><center<a href="http://python.about.com/
index.html">Click me!</a</center></font>')
cfile.write('<br><br>The wording of your request was: "%s"' %(line))
cfile.write('</body></html>')

cfile.close()
csock.close()

Carl Banks
Sep 13 '08 #3

P: n/a
@ Carl: Yes, I think your right now that I look at it (or at least all
except for the last two lines need to be indented). I'm still not sure
how to send the stuff to the web browser though. Thanks for pointing
it out!

@ Diez: I'll start googling those right away.

Carl Banks wrote:
On Sep 13, 12:15 am, fishfin <calebjhan...@gmail.comwrote:
I was working through a tutorial about how to write a server using
python (the url is bellow). I am sure that the server is working to
some degree because when the server is running localhost:8080 just
keeps trying to load until it times out. I would like to know how to
send information through the server to my browser?

I was working through this tutorial:http://python.about.com/od/networkin...nWebServer.htm

and my final code is like this:

import socket

host = ''
port = 8080

c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

c.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

c.bind((host, port))

c.listen(1)

while 1:
csock, caddr = c.accept()
cfile = csock.makefile('rw', 0)

It looks like everything after this line needs to be indented.
Besides that, nothing jumps out at me, though I don't do direct socket
programming a lot.
line = cfile.readline().strip()

cfile.write('HTTP/1.0 200 OK\n\n')
cfile.write('<html><head><title>Welcome %s!</title></head>' %
(str(caddr)))
cfile.write('<body><h1>Follow the link...</h1>')
cfile.write('All the server needs to do is ')
cfile.write('to deliver the text to the socket. ')
cfile.write('It delivers the HTML code for a link, ')
cfile.write('and the web browser converts it. <br><br><br><br>')
cfile.write('<font size="7"><center<a href="http://python.about.com/
index.html">Click me!</a</center></font>')
cfile.write('<br><br>The wording of your request was: "%s"' %(line))
cfile.write('</body></html>')

cfile.close()
csock.close()


Carl Banks
Sep 13 '08 #4

P: n/a
On Sep 13, 1:00 am, fishfin <calebjhan...@gmail.comwrote:
@ Carl: Yes, I think your right now that I look at it (or at least all
except for the last two lines need to be indented). I'm still not sure
how to send the stuff to the web browser though. Thanks for pointing
it out!
Try reading in the whole HTTP request instead of just the first line.
Change

line = cfile.readline().strip()

to

line = cfile.read()

And see if that helps. (Outputting the document so that it formats
the request well is left as an exercise. Also, as a heads up: in real
programs you should never output anything you receive through the
network without checking it or escaping it to prevent malicious uses.)
Carl Banks
Sep 13 '08 #5

P: n/a
On Sep 13, 4:25*pm, Carl Banks <pavlovevide...@gmail.comwrote:
On Sep 13, 1:00 am, fishfin <calebjhan...@gmail.comwrote:
@ Carl: Yes, I think your right now that I look at it (or at least all
except for the last two lines need to be indented). I'm still not sure
how to send the stuff to the web browser though. Thanks for pointing
it out!

Try reading in the whole HTTP request instead of just the first line.
Change

line = cfile.readline().strip()

to

line = cfile.read()

And see if that helps. *(Outputting the document so that it formats
the request well is left as an exercise. *Also, as a heads up: in real
programs you should never output anything you receive through the
network without checking it or escaping it to prevent malicious uses.)

Carl Banks
I figured out what the problem was. When you had suggested that I
indent the lines at first I did all of them, but when I did that there
must have been an nonindented line before the last two lines which I
had indented, so ending the 'while 1:'. Because of that, that code
just flat out didn't work so I assumed that they must be not be
indented which is why it hasn't been working all along. Thanks for
your help! I don't think I would have every figured it out if you last
post hadn't gotten me to thinking about little tweeks like that.
Sep 13 '08 #6

This discussion thread is closed

Replies have been disabled for this discussion.