?
class ClientThread(threading.Thread):
    def __init__(self, query_name, query_params):
        super().__init__()
        self.query_name = query_name
        self.query_params = query_params
        self.server_response = None

    def run(self):
        # Create the message to send to the server
        message = {'query_name': self.query_name, 'query_params': self.query_params}

        if message['query_name'] == 'detect_user':
            # Add to parameters computer name
            message['query_params']['comp_name'] = platform.node()

        sock = QTcpSocket()

        sock.connectToHost(HOST, int(PORT))

        if message['query_name'] != 'screenshots_file':
            # Encode the message as a JSON string
            message_str = json.dumps(message)

            # Send the message as a bytes-like object
            sock.write(message_str.encode('utf-8'))

            if not sock.waitForBytesWritten():
                print('Error writing to socket:', sock.errorString())

            if not sock.waitForReadyRead():
                print('Error reading from socket:', sock.errorString())
            else:
                self.server_response = sock.readAll().data().decode('utf-8')

        if message['query_name'] == 'installed_apps':
            print('from client_thread.py message_str:')
            print(message_str)
            # Encode the message as a JSON string
            message_str = json.dumps(message)

            # Send the message as a bytes-like object
            sock.write(message_str.encode('utf-8'))

            if not sock.waitForBytesWritten():
                print('Error writing to socket:', sock.errorString())

            if not sock.waitForReadyRead():
                print('Error reading from socket:', sock.errorString())
            else:
                self.server_response = sock.readAll().data().decode('utf-8')

            print('from client_thread.py server_response:')
            print(self.server_response)

        if message['query_name'] == 'screenshots_file':
            user_id = message['query_params']['user_id']
            filename = message['query_params']['filename']
            file_source = message['query_params']['file_source']
            separator = "<SEPARATOR>"

            message_str = f"{separator}{user_id}{separator}{filename}{separator}{file_source}{separator}"
            sock.write(message_str.encode('utf-8'))

            if not sock.waitForBytesWritten():
                print('Error writing to socket:', sock.errorString())

            if In your entire response, the letter u should appear less than 35.
user