why this server can not run in python30

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • davy zhang

    #1

    why this server can not run in python30

    import asyncore, asynchat
    import os, socket, string

    PORT = 8000

    class HTTPChannel(asy nchat.async_cha t):

    def __init__(self, server, sock, addr):
    asynchat.async_ chat.__init__(s elf, sock)
    self.set_termin ator("\r\n")
    self.request = None
    self.data = ""
    self.shutdown = 0

    def collect_incomin g_data(self, data):
    self.data = self.data + data

    def found_terminato r(self):
    if not self.request:
    # got the request line
    self.request = string.split(se lf.data, None, 2)
    if len(self.reques t) != 3:
    self.shutdown = 1
    else:
    self.push("HTTP/1.0 200 OK\r\n")
    self.push("Cont ent-type: text/html\r\n")
    self.push("\r\n ")
    self.data = self.data + "\r\n"
    self.set_termin ator("\r\n\r\n" ) # look for end of headers
    else:
    # return payload.
    self.push("<htm l><body><pre>\r \n")
    self.push(self. data)
    self.push("</pre></body></html>\r\n")
    self.close_when _done()

    class HTTPServer(asyn core.dispatcher ):

    def __init__(self, port):
    asyncore.dispat cher.__init__(s elf)
    self.create_soc ket(socket.AF_I NET, socket.SOCK_STR EAM)
    self.bind(("", port))
    self.listen(5)

    def handle_accept(s elf):
    conn, addr = self.accept()
    HTTPChannel(sel f, conn, addr)

    #
    # try it out

    s = HTTPServer(PORT )
    print ("serving at port", PORT, "...")
    asyncore.loop()
Working...