//Nơi chứa các hàm xử lý của phần truyền file #region Hàm private void sendFile() { try { if (pgSendFileServer.InvokeRequired) { var d = new progressBagTruyen(sendFile); Invoke(d); } else { socketForClient = tcpListener.AcceptSocket(); NetworkStream ns = new NetworkStream(socketForClient); sr = new StreamReader(ns); sw = new StreamWriter(ns); sw.WriteLine("Client gửi file " + fileName + " tới !"); sw.WriteLine(fileName); sw.Flush(); nwkStream = new NetworkStream(socketForClient); stmReader = File.OpenRead(txtFileTruyenServer.Text); stmWrite = nwkStream; FileInfo flInfo = new FileInfo(txtFileTruyenServer.Text); int max = Convert.ToInt32((flInfo.Length / 1024) / 81920); pgSendFileServer.Maximum = max; pgSendFileServer.Step = 1; int dem = 0; int size = 1024 * 1024 * 2; byte[] buff = new byte[size]; int len = 0; while ((len = stmReader.Read(buff, 0, buff.Length)) > 0) { stmWrite.Write(buff, 0, len); stmWrite.Flush(); dem++; if (dem > 40) { pgSendFileServer.PerformStep(); dem = 0; } } pgSendFileServer.Value = 0; MessageBox.Show("Gửi file thành công ", "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception e1) { MessageBox.Show("Lỗi ! : " + e1.Message, "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { socketForClient.Close(); } }
//Nơi chứa các hàm xử lý liên quan đến phần nhận file #region Hàm private void SaveFile() { try { if (pgTruyenClient.InvokeRequired) { var d = new progressBagTruyen(SaveFile); Invoke(d); } else { StreamReader sr = new StreamReader(tcpClient.GetStream()); StreamWriter sw = new StreamWriter(tcpClient.GetStream()); txtThongBaoClient.Text = sr.ReadLine(); string duongDan = txtSaveFileClient.Text + @"\" + sr.ReadLine(); nwkStreamServer = tcpClient.GetStream(); stmReadClient = nwkStreamServer; stmWriteClient = File.OpenWrite(duongDan); int size = 1024 * 1024; byte[] buff = new byte[size]; int len; while ((len = stmReadClient.Read(buff, 0, size)) > 0) { stmWriteClient.Write(buff, 0, len); stmWriteClient.Flush(); } MessageBox.Show("Nhận file thành công ", "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); txtThongBaoClient.Text = ""; } }catch (Exception e1) { MessageBox.Show("Lỗi ! : " + e1.Message, "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { tcpClient.Close(); Connect(); } }
//Nơi chứa các hàm xử lý liên quan đến phần nhận file #region Hàm public void SaveFile() { try { if (pgSendFileServer.InvokeRequired) { var d = new progressBagTruyen(SaveFile); Invoke(d); } else { nwkStream = new NetworkStream(socketForClient); string duongDan = "D:\\DA_Mang_Server" + @"\" + sr.ReadLine(); nwkStream = tcpListener.AcceptTcpClient().GetStream(); stmReader = nwkStream; stmWrite = File.OpenWrite(duongDan); int size = 1024 * 1024; byte[] buff = new byte[size]; int len; while ((len = stmReader.Read(buff, 0, size)) > 0) { stmWrite.Write(buff, 0, len); stmWrite.Flush(); } txtThongBaoServer.Text = ""; MessageBox.Show("Nhận file thành công ", "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception e) { MessageBox.Show("Lỗi ! : " + e.Message, "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { socketForClient.Close(); } }
//Nơi chứa các hàm xử lý của phần truyền file #region Hàm private void sendFile() { try { if (pgTruyenClient.InvokeRequired) { var d = new progressBagTruyen(sendFile); Invoke(d); } else { StreamReader sr = new StreamReader(tcpClient.GetStream()); StreamWriter sw = new StreamWriter(tcpClient.GetStream()); sw.WriteLine("Client gửi file " + fileName + " tới !"); sw.WriteLine(fileName); sw.Flush(); nwkStreamServer = new NetworkStream(socketForServer); stmReadClient = File.OpenRead(txtFileTruyenClient.Text); stmWriteClient = nwkStreamServer; FileInfo flInfo = new FileInfo(txtFileTruyenClient.Text); int max = Convert.ToInt32((flInfo.Length / 1024) / 81920); pgTruyenClient.Maximum = max; pgTruyenClient.Step = 1; int dem = 0; int size = 1024 * 1024 * 2; byte[] buff = new byte[size]; int len = 0; while ((len = stmReadClient.Read(buff, 0, buff.Length)) > 0) { stmWriteClient.Write(buff, 0, len); stmWriteClient.Flush(); dem++; if (dem > 40) { pgTruyenClient.PerformStep(); dem = 0; } } pgTruyenClient.Value = 0; MessageBox.Show("Gửi file thành công !", "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception e1) { pgTruyenClient.Value = 0; MessageBox.Show("Lỗi : " + e1.Message, "Chương trình cắt và truyền file", MessageBoxButtons.OK, MessageBoxIcon.Information); } finally { //nwkStreamServer.Close(); //stmReadClient.Close(); //stmWriteClient.Close(); tcpClient.Close(); socketForServer.Close(); //socketForServer.Close(); //lbKetNoi.Text = "Đã đóng kết nối !"; Connect(); } }