Exemple #1
0
    def execute(self):
        try:
            start_time = perf_counter()

            if os.path.exists(self._file_name):
                os.remove(self._file_name)

            message = compose_message({'start': True})

            self._client.connection.send(message)

            self._get_file()

            end_time = perf_counter()

            if (end_time - start_time) > 0:
                bit_rate = self._file_size / float((end_time - start_time))
            else:
                bit_rate = -1

            print(
                f'\nFile {self._file_name} has been successfully uploaded by client,'
                f' Bit rate: {bit_rate * BIT_RATE_KBPS} kBps')

        except FileNotFoundError:
            print('Such file doesn\'t exist. Try another one')
Exemple #2
0
    def execute(self):
        data = {'payload': self._data}

        print(f'Echoed data from client: {self._data}')

        message = compose_message(data)

        self._client.connection.sendall(message)
Exemple #3
0
    def execute(self):
        date = datetime.datetime.now()

        data = {'payload': date}

        message = compose_message(data)

        print(f'Client requested current time. Time is {date}')

        self._client.connection.sendall(message)
Exemple #4
0
    def execute(self):
        data = {'payload': self._data}

        self._mutex.acquire()
        print(f'Echoed data from client: {self._data}')
        self._mutex.release()

        message = compose_message(data)

        self._client.connection.sendall(message)
Exemple #5
0
    def execute(self):
        data = {'type': Commands.ECHO.value, 'payload': self._data}

        message = compose_message(data)

        self._connection.sendall(message)

        response = get_message(self._connection, PACKET_SIZE)

        echoed_data = response['payload']

        print(f'Echoed data: {echoed_data}')
Exemple #6
0
    def execute(self):
        data = {'type': Commands.TIME.value}

        message = compose_message(data)

        self._connection.sendall(message)

        response = get_message(self._connection, PACKET_SIZE)

        time = response['payload']

        print(f'Time, according to server, is {time}')
Exemple #7
0
    def _send_request_message(self, file_name: str, file_size: int):
        data = {'type': Commands.DOWNLOAD.value, 'file_name': file_name, 'file_size': file_size}

        message = compose_message(data)

        self._client.connection.send(message)

        response = get_message(self._client.connection)

        if not response['start']:
            print('Client denied download!')

            raise FileExchangeDenial
Exemple #8
0
    def execute(self):
        start_time = perf_counter()

        if os.path.exists(self._file_name):
            os.remove(self._file_name)

        message = compose_message({'start': True})

        self._client.connection.send(message)

        self._get_file()

        end_time = perf_counter()

        if (end_time - start_time) > 0:
            bit_rate = self._file_size / float((end_time - start_time))
        else:
            bit_rate = -1

        self._mutex.acquire()
        print(
            f'\nFile {self._file_name} has been successfully uploaded by client,'
            f' Bit rate: {bit_rate * BIT_RATE_KBPS} kBps')
        self._mutex.release()