Bläddra i källkod

Add files via upload

assume-breach 2 år sedan
förälder
incheckning
f242d025d2
1 ändrade filer med 69 tillägg och 0 borttagningar
  1. 69 0
      StageFright/StageFright/tcp_server.py

+ 69 - 0
StageFright/StageFright/tcp_server.py

@@ -0,0 +1,69 @@
+import socketserver
+import os
+
+class MyHandler(socketserver.BaseRequestHandler):
+    def handle(self):
+        print("Connection received from:", self.client_address)
+
+        try:
+            # Receive file path length
+            path_len_bytes = self.request.recv(8)
+            if not path_len_bytes:
+                print("Error receiving file path length.")
+                return
+
+            path_len = int.from_bytes(path_len_bytes, byteorder='little')  # Change byte order to 'little'
+            print(f"Received file path length: {path_len}")
+
+            # Receive file path
+            file_path_bytes = b""
+            while len(file_path_bytes) < path_len:
+                received_data = self.request.recv(path_len - len(file_path_bytes))
+                if not received_data:
+                    print("Error receiving file path.")
+                    return
+                file_path_bytes += received_data
+
+            file_name = file_path_bytes.decode('utf-8')
+            print("Received file name:", file_name)
+
+            # Check if the file exists
+            file_path = os.path.join(os.getcwd(), file_name)
+            print("Absolute file path:", file_path)
+            if os.path.exists(file_path):
+                print("File found:", file_path)
+
+                # Read file data
+                with open(file_path, 'rb') as file:
+                    file_data = file.read()
+
+                # Print the size before sending
+                file_size = len(file_data)
+                print("Size of file:", file_size)
+
+                # Send file size to the client
+                self.request.sendall(file_size.to_bytes(4, byteorder='big'))
+
+                # Send file data back to the client
+                self.request.sendall(file_data)
+                print("File data sent successfully.")
+
+            else:
+                print("File not found:", file_path)
+                self.request.sendall(b"FILE_NOT_FOUND")
+
+        except Exception as e:
+            print("Error:", str(e))
+            self.request.sendall(b"SERVER_ERROR")
+
+if __name__ == "__main__":
+    host, port = "192.168.1.12", 8080
+    server = socketserver.TCPServer((host, port), MyHandler)
+    print(f"Server listening on {host}:{port}")
+
+    try:
+        server.serve_forever()
+    except KeyboardInterrupt:
+        print("Server shutting down.")
+        server.shutdown()
+