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()
|
@ -0,0 +1 @@
|
||||
|
Loading…
Reference in new issue