update
This commit is contained in:
111
server.py
111
server.py
@@ -1,39 +1,90 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import multiprocessing
|
||||
import socket
|
||||
import sys
|
||||
|
||||
# socket heeft een listening and accept method
|
||||
import time
|
||||
from server.httpserver import HTTPServer
|
||||
|
||||
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
|
||||
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()
|
||||
|
||||
HEADER = 64 # maximum size messages
|
||||
FORMAT = 'utf-8' # recieving images through this format does not work
|
||||
DISCONNECT_MESSAGE = "DISCONNECT!" # special message for disconnecting client and server
|
||||
logging_level = logging.ERROR - (10 * arguments.verbose)
|
||||
logging.basicConfig(level=logging_level)
|
||||
logging.debug("Arguments: %s", arguments)
|
||||
|
||||
# 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)
|
||||
for i in range(0,10):
|
||||
conn.send(b"test")
|
||||
time.sleep(1)
|
||||
# Set workers
|
||||
if arguments.workers:
|
||||
workers = int(arguments.workers)
|
||||
else:
|
||||
workers = multiprocessing.cpu_count()
|
||||
|
||||
break
|
||||
print("close connection ", addr[0], " disconnected.")
|
||||
conn.close()
|
||||
# Set port
|
||||
if arguments.port:
|
||||
port = int(arguments.port)
|
||||
else:
|
||||
port = 8000
|
||||
|
||||
print("server is starting ... ")
|
||||
start()
|
||||
# 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()
|
||||
|
Reference in New Issue
Block a user