#!/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()