From 488ce0caadbac9408589b138bce3f472bf5e0e62 Mon Sep 17 00:00:00 2001 From: wufayuan <2858767122@qq.com> Date: Mon, 14 Mar 2022 08:49:52 +0800 Subject: [PATCH] something new about preparing --- dcs/main.py | 3 +++ dcs/requestHandler.py | 31 +++++++++++++++++++++++++++++++ dcs/server.py | 1 + 3 files changed, 35 insertions(+) create mode 100644 dcs/requestHandler.py create mode 100644 dcs/server.py diff --git a/dcs/main.py b/dcs/main.py index e69de29..46a9676 100644 --- a/dcs/main.py +++ b/dcs/main.py @@ -0,0 +1,3 @@ +# -*- coding: UTF-8 -*- +import server +import requestHandler diff --git a/dcs/requestHandler.py b/dcs/requestHandler.py new file mode 100644 index 0000000..a26c914 --- /dev/null +++ b/dcs/requestHandler.py @@ -0,0 +1,31 @@ +import socket +import threading +import json +import struct + + +class RequestHandler(threading.Thread): + def __init__(self, file_server: 'FileServer', client_socket: 'socket.socket', request_map: 'dict'): + super().__init__() + self.file_server = file_server + self.client_socket = client_socket + self.request_map = request_map + self.daemon = True + pass + + def run(self) -> None: + try: + if self.request_map['action'] == 'getFileSize': + print(f"[REQUEST] getFileSize") + response = { + 'fileSize': self.file_server.get_file_size() + } + response_binary = json.JSONEncoder().encode(response).encode("utf-8") + response_binary_len = len(response_binary) + response_binary_len_binary = struct.pack("!Q", response_binary_len) + + response_binary = response_binary_len_binary + response_binary + self.client_socket.sendall(response_binary) + print(f"[RESPONSE] file size: {response['fileSize']}, header size: {response_binary_len}") + finally: + self.client_socket.close() diff --git a/dcs/server.py b/dcs/server.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/dcs/server.py @@ -0,0 +1 @@ +