Last active
August 21, 2018 12:30
-
-
Save hammertoe/32f37bdce7bfc8d71f449f796edf3394 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
try: | |
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer | |
except: | |
from http.server import BaseHTTPRequestHandler, HTTPServer | |
import socket | |
class NumberServer(BaseHTTPRequestHandler): | |
def _set_headers(self): | |
self.send_response(200) | |
self.send_header('Content-type', 'text/plain') | |
self.end_headers() | |
def do_GET(self): | |
self._set_headers() | |
# Try and open number file and read number | |
try: | |
f = open("number.txt", "r") | |
number = int(f.read()) | |
f.close() | |
except (IOError, ValueError): | |
# if we fail then just assume 1 | |
number = 1 | |
# send the number to the client | |
try: | |
# python 3 | |
self.wfile.write(bytes(str(number), "utf-8")) | |
except TypeError: | |
# python 2 | |
self.wfile.write(str(number)) | |
# write incremented number back to file | |
f = open("number.txt", "w") | |
number = str(number+1) | |
f.write(number) | |
f.close() | |
def do_HEAD(self): | |
self._set_headers() | |
class HTTPServerV6(HTTPServer): | |
address_family = socket.AF_INET | |
def run(server_class=HTTPServer, handler_class=NumberServer, port=80): | |
server_address = ('127.0.0.1', port) | |
httpd = server_class(server_address, handler_class) | |
print('Starting number server...') | |
httpd.serve_forever() | |
if __name__ == "__main__": | |
from sys import argv | |
if len(argv) == 2: | |
run(port=int(argv[1])) | |
else: | |
run() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment