public void ReceiveFile(string FileDirectory) { Thread thread = new Thread(new ThreadStart(() => { NetworkStream stream = client.GetStream(); BinaryFormatter formatter = new BinaryFormatter(); FileTransfer transfer = (FileTransfer)formatter.Deserialize(stream); string realFD = FileDirectory + "\\" + transfer.FileName; File.WriteAllBytes(realFD, Convert.FromBase64String(transfer.FileContent)); if (Encoding.CalculateMD5(realFD) != transfer.CheckSum) { Console.WriteLine("[WARNING] Coppied file with checksum not equal!"); } })); thread.Start(); }
public void SendFile(string FileDirectory) { Thread thread = new Thread(new ThreadStart(() => { FileTransfer transferRequest = new FileTransfer(); try { transferRequest.FileName = new FileInfo(FileDirectory).Name; transferRequest.FileSize = new FileInfo(FileDirectory).Length.ToString(); transferRequest.CheckSum = Encoding.CalculateMD5(FileDirectory); string Seed = "Trequest"; transferRequest.Seed = Seed; transferRequest.FileContent = Convert.ToBase64String(File.ReadAllBytes(FileDirectory)); NetworkStream stream = client.GetStream(); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, transferRequest); } catch { Console.WriteLine("Failed to send file!"); } })); thread.Start(); }