From dbd8e614b8cb0f1aa12662b131e2aac9eb3315cb Mon Sep 17 00:00:00 2001 From: Luke Esau Date: Thu, 13 Apr 2023 08:52:07 -0700 Subject: [PATCH] newly created test server works so why the fuck does my other server not work --- server.old.py | 40 ++++++++++++++++++++++ server.py | 78 +++++++++++++++++++++++------------------- testserver.py | 2 +- testserverwithclass.py | 8 ++--- 4 files changed, 87 insertions(+), 41 deletions(-) create mode 100644 server.old.py diff --git a/server.old.py b/server.old.py new file mode 100644 index 0000000..ea73383 --- /dev/null +++ b/server.old.py @@ -0,0 +1,40 @@ +import socket +import time +import threading + +class ServerVCKO: + def __init__(self): + self.host = socket.gethostname() + self.port = 5000 + self.header_size = 1024 + self.format = "utf-8" + self.disconnect_message = "!DISCONNECT" + + def handle_client(self, conn, addr): + print(f"Connection from: {addr}") + connected = True + while connected: + msg_length = conn.recv(self.header_size).decode(self.format) + if msg_length: + msg_length = int(msg_length) + msg = conn.recv(msg_length).decode(self.format) + if msg == disconnect_message: + connected = False + print(f"[{addr}] {msg}") + conn.send("msg received".encode(self.format)) + conn.close() + def start(self): + server_socket = socket.socket() + server_socket.bind((self.host, self.port)) + server_socket.listen() + print(f"server is listening on {socket.gethostbyname(self.host)}") + while True: + conn, addr = server_socket.accept() + thread = threading.Thread(target=self.handle_client, args=(conn, addr)) + thread.start + print(f"Active threads: {threading.active_count() - 1}") + +if __name__ == '__main__': + print("server starting") + server = ServerVCKO() + server.start() diff --git a/server.py b/server.py index ea73383..55f21bb 100644 --- a/server.py +++ b/server.py @@ -1,40 +1,46 @@ -import socket -import time +import socket import threading -class ServerVCKO: - def __init__(self): - self.host = socket.gethostname() - self.port = 5000 - self.header_size = 1024 - self.format = "utf-8" - self.disconnect_message = "!DISCONNECT" +HEADER = 1024 +PORT = 5000 +SERVER = socket.gethostbyname(socket.gethostname()) +ADDR = (SERVER, PORT) +FORMAT = 'utf-8' +DISCONNECT_MESSAGE = "!DISCONNECT" - def handle_client(self, conn, addr): - print(f"Connection from: {addr}") - connected = True - while connected: - msg_length = conn.recv(self.header_size).decode(self.format) - if msg_length: - msg_length = int(msg_length) - msg = conn.recv(msg_length).decode(self.format) - if msg == disconnect_message: +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind(ADDR) + +def handle_client(conn, addr): + print(f"[NEW CONNECTION] {addr} connected.") + + connected = True + while connected: + msg_length = conn.recv(HEADER).decode(FORMAT) + if msg_length: + msg_length = int(msg_length) + msg = conn.recv(msg_length).decode(FORMAT) + match msg: + case DISCONNECT_MESSAGE: connected = False - print(f"[{addr}] {msg}") - conn.send("msg received".encode(self.format)) - conn.close() - def start(self): - server_socket = socket.socket() - server_socket.bind((self.host, self.port)) - server_socket.listen() - print(f"server is listening on {socket.gethostbyname(self.host)}") - while True: - conn, addr = server_socket.accept() - thread = threading.Thread(target=self.handle_client, args=(conn, addr)) - thread.start - print(f"Active threads: {threading.active_count() - 1}") - -if __name__ == '__main__': - print("server starting") - server = ServerVCKO() - server.start() + case "test": + print(f"[{addr}] {msg}") + conn.send("Msg received special response".encode(FORMAT)) + case _: + print(f"[{addr}] {msg}") + conn.send("Msg received".encode(FORMAT)) + conn.close() + + +def start(): + server.listen() + print(f"[LISTENING] Server is listening on {SERVER}") + while True: + conn, addr = server.accept() + thread = threading.Thread(target=handle_client, args=(conn, addr)) + thread.start() + print(f"[ACTIVE CONNECTIONS] {threading.active_count() - 1}") + + +print("[STARTING] server is starting...") +start() diff --git a/testserver.py b/testserver.py index abf76b5..7301811 100644 --- a/testserver.py +++ b/testserver.py @@ -1,7 +1,7 @@ import socket import threading -HEADER = 64 +HEADER = 1024 PORT = 5000 SERVER = socket.gethostbyname(socket.gethostname()) ADDR = (SERVER, PORT) diff --git a/testserverwithclass.py b/testserverwithclass.py index 91172d5..50c95ca 100644 --- a/testserverwithclass.py +++ b/testserverwithclass.py @@ -17,15 +17,15 @@ class MyClass(): connected = True while connected: - msg_length = conn.recv(HEADER).decode(FORMAT) + msg_length = conn.recv(self.HEADER).decode(self.FORMAT) if msg_length: msg_length = int(msg_length) - msg = conn.recv(msg_length).decode(FORMAT) - if msg == DISCONNECT_MESSAGE: + msg = conn.recv(msg_length).decode(self.FORMAT) + if msg == self.DISCONNECT_MESSAGE: connected = False print(f"[{addr}] {msg}") - conn.send("Msg received".encode(FORMAT)) + conn.send("Msg received".encode(self.FORMAT)) conn.close()