<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def send(self, filenames=None):
 """Sends the file to the remote host and archives the sent file locally. """

        try:
            with self.ssh_client.connect() as ssh_conn:
                with self.sftp_client.connect(ssh_conn) as sftp_conn:
                    for filename in filenames:
                        sftp_conn.copy(filename=filename)
                        self.archive(filename=filename)
                        if self.update_history_model:
                            self.update_history(filename=filename)
        except SSHClientError as e:
            raise TransactionFileSenderError(e) from e
        except SFTPClientError as e:
            raise TransactionFileSenderError(e) from e
        return filenames