/// <summary> /// Constructed to send one or more files to a remove server identified by serverKey. The transfer /// is a blocking call and returns on success or raises an exception. If Abort() is called durring /// the transfer, or if a ProgressChanged event handler raises the OperationCanceledException, the /// transfer is silently terminated. /// </summary> /// <param name="privateKey">The private key for this client</param> /// <param name="serverKey">The public key of the server</param> /// <param name="sendMessage">A delegate to transfer data to the server and obtain a response</param> public Client(RSAPrivateKey privateKey, RSAPublicKey serverKey, TransmitMessageAction sendMessage) { _privateKey = Check.NotNull(privateKey); _publicKey = Check.NotNull(serverKey); _sendMessage = Check.NotNull(sendMessage); _abort = new ManualResetEvent(false); LimitThreads = 10; }