Mình có tham khảo trên diễn đàn một bài viết về truyền nhận file giữa server và client, mình làm theo. Nhưng không hiểu sao khi client nhận được file thì cái file đó khi mở lên là 0Byte. Đây là code:
Server:
Visual C# Code:
  1. public void GuiFile()
  2. {
  3.      Stream reader = null;
  4.      Stream writer = null;
  5.      NetworkStream stream = null;
  6.      if (client_tmp.Connected)
  7.      {
  8.           stream = new NetworkStream(client_tmp.Client);
  9.           reader = File.OpenRead(txtDuongDan.Text);
  10.           writer = stream;
  11.           FileInfo file = new FileInfo(txtDuongDan.Text);
  12.           int size = Convert.ToInt32(file.Length);
  13.           byte[] buffer = new byte[1024 * 1024];
  14.           int length = 0;
  15.           int progress = 0;
  16.           while ((length = reader.Read(buffer, 0, 1024 * 1024)) != 0)
  17.           {
  18.                progress += length;
  19.                writer.Write(buffer, 0, length);
  20.                writer.Flush();
  21.           }
  22.           stream.Close();
  23.           writer.Close();
  24.           reader.Close();
  25.      }
  26. }
Còn đây là Client:
Visual C# Code:
  1. public void Nhanfile()
  2. {
  3.        Stream reader = null;
  4.        Stream writer = null;
  5.        NetworkStream netstream = null;
  6.        netstream = client.GetStream();
  7.        reader = netstream;
  8.        writer = File.OpenWrite(txtDuongDan.Text);
  9.        byte[] size = new byte[1024];
  10.        int len = 0;
  11.        while ((len = reader.Read(size, 0, 1024)) > 0)
  12.        {
  13.              writer.Write(size, 0, len);
  14.              writer.Flush();
  15.        }
  16.        netstream.Close();
  17.        writer.Close();
  18.        reader.Close();
  19. }