something new about preparing

pull/1/head
wufayuan 3 years ago
parent 5a450a9293
commit 488ce0caad

@ -0,0 +1,3 @@
# -*- coding: UTF-8 -*-
import server
import requestHandler

@ -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()
Loading…
Cancel
Save