Files
CN2021/server.py
2021-03-21 23:01:09 +01:00

91 lines
2.9 KiB
Python

#!/usr/bin/env python3
import argparse
import logging
import multiprocessing
import socket
import sys
from server.httpserver import HTTPServer
def main():
parser = argparse.ArgumentParser(description='HTTP Server')
parser.add_argument("--verbose", "-v", action='count', default=0, help="Increase verbosity level of logging")
parser.add_argument("--workers", "-w",
help="The amount of worker processes. This is by default based on the number of cpu threads.",
type=int)
parser.add_argument("--port", "-p", help="The port to listen on", default=8000)
arguments = parser.parse_args()
logging_level = logging.ERROR - (10 * arguments.verbose)
logging.basicConfig(level=logging_level)
logging.debug("Arguments: %s", arguments)
# Set workers
if arguments.workers:
workers = int(arguments.workers)
else:
workers = multiprocessing.cpu_count()
# Set port
if arguments.port:
port = int(arguments.port)
else:
port = 8000
# Get hostname and address
hostname = socket.gethostname()
address = socket.gethostbyname(hostname)
server = HTTPServer(address, port, workers, logging_level)
server.start()
try:
if __name__ == '__main__':
main()
except Exception as e:
print("[ABRT] Internal error: " + str(e), file=sys.stderr)
logging.debug("Internal error", exc_info=e)
sys.exit(70)
# import socket
#
# # Get hostname and address
# hostname = socket.gethostname()
# address = socket.gethostbyname(hostname)
#
# # socket heeft een listening and accept method
#
# SERVER = "127.0.0.1" # dynamisch fixen in project
# PORT = 5055
# server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#
# ADDR = (SERVER, PORT) # hier wordt de socket gebonden aan mijn IP adres, dit moet wel anders
# server.bind(ADDR) # in het project gebeuren
#
# HEADER = 64 # maximum size messages
# FORMAT = 'utf-8'
# DISCONNECT_MESSAGE = "DISCONNECT!" # special message for disconnecting client and server
#
#
# # function for starting server
# def start():
# pass
# server.listen()
# while True: # infinite loop in which server accept incoming connections, we want to run it forever
# conn, addr = server.accept() # Server blocks untill a client connects
# print("new connection: ", addr[0], " connected.")
# connected = True
# while connected: # while client is connected, we want to recieve messages
# msg = conn.recv(HEADER).decode(
# FORMAT).rstrip() # Argument is maximum size of msg (in project look into details of accp), decode is for converting bytes to strings, rstrip is for stripping messages for special hidden characters
# print("message: ", msg)
# if msg == DISCONNECT_MESSAGE:
# connected = False
# print("close connection ", addr[0], " disconnected.")
# conn.close()
#
#
# print("server is starting ... ")
# start()