From f8e144031e38396b3a44c3c88fb34959343e5ce9 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 7 Sep 2021 22:08:44 -0400 Subject: [PATCH] basic tcp c/s fw, server class --- client/manager_client.py | 6 ++++++ server/client.py | 12 ++++++++++++ server/manager_server.py | 4 ++++ server/server.py | 23 +++++++++++++++++++++++ server/task.py | 3 +++ 5 files changed, 48 insertions(+) create mode 100644 client/manager_client.py create mode 100644 server/client.py create mode 100644 server/manager_server.py create mode 100644 server/server.py create mode 100644 server/task.py diff --git a/client/manager_client.py b/client/manager_client.py new file mode 100644 index 0000000..cd51082 --- /dev/null +++ b/client/manager_client.py @@ -0,0 +1,6 @@ +import socket +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +s.connect(("192.168.1.2", 1337)) +message = "ohayou~" +s.sendall(message.encode("ASCII")) +s.close() \ No newline at end of file diff --git a/server/client.py b/server/client.py new file mode 100644 index 0000000..a88eab6 --- /dev/null +++ b/server/client.py @@ -0,0 +1,12 @@ +import socket +class client: + def __init__(self, sock_, address_): + self.sock = sock_ + self.address = address_ + def __del__(self): + self.sock.close() + def run(self): + while True: + data = self.sock.recv(1024) + if not data: continue + print(self.address, ":", data.decode("ASCII")) \ No newline at end of file diff --git a/server/manager_server.py b/server/manager_server.py new file mode 100644 index 0000000..faa6458 --- /dev/null +++ b/server/manager_server.py @@ -0,0 +1,4 @@ +import server + +s = server.server("192.168.1.2", 1337) +s.run() diff --git a/server/server.py b/server/server.py new file mode 100644 index 0000000..d6bc877 --- /dev/null +++ b/server/server.py @@ -0,0 +1,23 @@ +import socket +import client +import threading + +class server: + def __init__(self, address, port): + self.clients = [] + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.sock.bind((address, port)) + self.sock.listen() + def __del__(self): + for c in self.clients: + del c + def run(self): + while True: + (client_sock, address) = self.sock.accept() + c = client.client(client_sock, address) + + self.clients.append(c) + print("added client:", address) + + t = threading.Thread(target=c.run, args=()) + t.start() diff --git a/server/task.py b/server/task.py new file mode 100644 index 0000000..04a782e --- /dev/null +++ b/server/task.py @@ -0,0 +1,3 @@ +class task: + def __init__(self): + pass \ No newline at end of file