adding a simple web server for stack testing
This commit is contained in:
parent
1672ec001a
commit
967e6cdb7a
@ -1,3 +1,4 @@
|
||||
# misc-tools
|
||||
|
||||
various tools for miscellaneous use
|
||||
Various tools for miscellaneous use.
|
||||
|
||||
|
65
python-web-server
Executable file
65
python-web-server
Executable file
@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import http.server
|
||||
import socketserver
|
||||
import logging
|
||||
|
||||
# setting up logging for this script
|
||||
_level = logging.INFO
|
||||
_format = "%(asctime)-15s [%(levelname)-8s] %(lineno)d : %(funcName)s : %(message)s"
|
||||
logging.basicConfig(format=_format, level=_level)
|
||||
log = logging.getLogger()
|
||||
|
||||
|
||||
class SimpleHandler(http.server.BaseHTTPRequestHandler):
|
||||
|
||||
def do_GET(self):
|
||||
log.info(f"server version: {self.server_version}")
|
||||
log.info(f"client address: {self.client_address}")
|
||||
self.send_response(200)
|
||||
self.send_header('Content-type', 'text/html')
|
||||
self.end_headers()
|
||||
self.wfile.write(b"<html><body><h1>Hello, World!</h1></body></html>")
|
||||
return
|
||||
|
||||
class SockHandler(socketserver.BaseRequestHandler):
|
||||
|
||||
def handle(self):
|
||||
self.data = self.request.recv(1024).strip()
|
||||
log.info(f"client address: {self.client_address}")
|
||||
log.info(f"received data:\n{self.data}")
|
||||
self.request.sendall(b"Hello, World!\n")
|
||||
|
||||
|
||||
def parse_args():
|
||||
"""
|
||||
Parse args
|
||||
"""
|
||||
argp = argparse.ArgumentParser()
|
||||
argp.add_argument('-i', '--ip-address', default="", help="IP Address to bind the server")
|
||||
argp.add_argument('-p', '--port', type=int, default=8080, help="Port on which to listen for traffic")
|
||||
argp.add_argument('-d', '--debug', help="Run in debug mode")
|
||||
return argp.parse_args()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parse_args()
|
||||
|
||||
if args.debug:
|
||||
log.setLevel(logging.DEBUG)
|
||||
|
||||
try:
|
||||
#simple_handler = SimpleHandler() # http.server.SimpleHTTPRequestHandler
|
||||
|
||||
with http.server.HTTPServer((args.ip_address, args.port), SimpleHandler) as httpd:
|
||||
log.info(f"Server started on {args.ip_address}:{args.port}")
|
||||
httpd.serve_forever()
|
||||
|
||||
#with socketserver.TCPServer((args.ip_address, args.port), SockHandler) as tcpd:
|
||||
# log.info(f"Server started on {args.ip_address}:{args.port}")
|
||||
# tcpd.serve_forever()
|
||||
|
||||
except KeyboardInterrupt as control_c:
|
||||
log.info("Server stopped")
|
||||
|
Loading…
Reference in New Issue
Block a user