server/server.py
author Eugen Sawin <sawine@me73.com>
Thu, 06 Oct 2011 02:05:43 +0200
changeset 8 c926073022f4
parent 7 9d9401f1cf76
child 9 44d912089ce1
permissions -rwxr-xr-x
Some improvs.
sawine@7
     1
#!/usr/bin/python
sawine@7
     2
sawine@7
     3
from argparse import ArgumentParser
sawine@7
     4
sawine@7
     5
def parse_args():
sawine@7
     6
    parser = ArgumentParser(description="")
sawine@7
     7
    parser.add_argument("port", type=int, help="port")
sawine@7
     8
    parser.add_argument("-a", help="host address")
sawine@7
     9
    return parser.parse_args()	
sawine@7
    10
sawine@7
    11
def main():
sawine@7
    12
	args = parse_args()
sawine@7
    13
	port = args.port
sawine@7
    14
	server = Server("localhost", port, GetHandler)
sawine@7
    15
	server.run()
sawine@7
    16
sawine@7
    17
from BaseHTTPServer import BaseHTTPRequestHandler
sawine@7
    18
from BaseHTTPServer import HTTPServer
sawine@7
    19
import SocketServer
sawine@7
    20
import urlparse
sawine@7
    21
sawine@7
    22
class GetHandler(BaseHTTPRequestHandler):
sawine@7
    23
	def do_GET(self):
sawine@7
    24
		parsed_path = urlparse.urlparse(self.path)
sawine@7
    25
		message = '\n'.join(("client: %s:%i" % self.client_address,
sawine@7
    26
				     "path: %s" % parsed_path.path,
sawine@7
    27
				     "query: %s" % parsed_path.query,
sawine@7
    28
				     "params: %s" % parsed_path.params))
sawine@7
    29
		self.send_response(200)
sawine@8
    30
                self.send_header("Content-type", "application/json")
sawine@7
    31
		self.end_headers()
sawine@8
    32
                self.wfile.write("{\"time:\": 73}")
sawine@7
    33
		
sawine@7
    34
class Server(HTTPServer):
sawine@7
    35
	def __init__(self, host, port, handler):
sawine@7
    36
		HTTPServer.__init__(self, (host, port), handler)
sawine@7
    37
		self.host = host
sawine@7
    38
		self.port = port
sawine@7
    39
	def run(self):
sawine@7
    40
		self.serve_forever()
sawine@7
    41
sawine@7
    42
if __name__ == "__main__":
sawine@7
    43
	main()
sawine@7
    44