How you are transferring.... Tell me the which topic you are using Client --> Server, Remoting , Web Service ? if you are more clear then its easy to help you out

Thank verymuch for instruction, I have replace and change some variable int to long as you guide but it get two error here, please repaired it for me.

Click Here

namespace server
{
    public partial class Form1 : Form
    {
        public delegate void UpdateListBoxCallBack(string s);
        public delegate void UpdateLabelCallBack(string s);
        public delegate void Updatepgdstatus(long s, long p);
        private NetworkStream nwkStream = null;
        private Socket socketForClient = null;
        private TcpListener tcpListener = null;
        private Stream stmReader = null;
        private Stream stmWriter = null;
        private Thread t = null;

        public Form1()
        {
            Control.CheckForIllegalCrossThreadCalls = false;
            InitializeComponent();
            IPHostEntry ips = Dns.GetHostByName(Dns.GetHostName());
            ipServer.Text = ips.AddressList[0].ToString();
            label5.Text = null;
        }

        private void btnBrowse_Click(object sender, EventArgs e)
        {
            txtFileName.Clear();
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Title = "Choose file to send";
            fileDialog.Filter = "Text Files (*.txt)|*.txt|Word Documents" + "(*.doc)|*.doc|All Files (*.*)|*.*";
            fileDialog.Multiselect = true;
            fileDialog.ShowReadOnly = true;
            if (fileDialog.ShowDialog(this) == DialogResult.OK)
            {
                txtFileName.Text = fileDialog.FileName;
                lblMessage.Text = null;
            }
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            t = new Thread(new ThreadStart(startSever));
            txtFileName.Clear();
            lblMessage.Text = "Server have start!";
            lblprogressbar.Text = "";
            progressbar.Value = 0;
        }

        private void startSever()
        {
            try
            {
                set1("Listening");
                IPEndPoint ip = new IPEndPoint(IPAddress.Parse(ipServer.Text), int.Parse(port.Text));
                tcpListener = new TcpListener(ip);
                tcpListener.Start();
                socketForClient = tcpListener.AcceptSocket();
                if (socketForClient.Connected)
                {
                    NetworkStream ns = new NetworkStream(socketForClient);
                    StreamReader sr = new StreamReader(ns);
                    StreamWriter sw = new StreamWriter(ns);
                    string filename = txtFileName.Text;
                    nwkStream = new NetworkStream(socketForClient);
                    stmReader = File.OpenRead(txtFileName.Text);
                    stmWriter = nwkStream;
                    FileInfo flInfo = new FileInfo(txtFileName.Text);
                    //int size = Convert.ToInt32(flInfo.Length);
                    long size = flInfo.Length;
                    byte[] buff = new byte[32 * 2048];
                    int len = 0;
                    long progress = 0;
                    set1("Starting");
                    sw.WriteLine(filename);
                    sw.Flush();
                    while ((len = stmReader.Read(buff, 0, 2048)) != 0)
                    {
                        progress += len;
                        set3(size, progress);
                        set(progress.ToString() + " Byte of " + size + " Byte");
                        stmWriter.Write(buff, 0, len);
                        stmWriter.Flush();
                    }
                    set1("File has sent succesfully!");
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
            finally
            {
                if (socketForClient != null)
                {
                    socketForClient.Close();
                    nwkStream.Close();
                    stmWriter.Close();
                    stmReader.Close();
                    tcpListener.Stop();
                }
            }
        }

        void set1(string s)
        {
            if (InvokeRequired)
            {
                object[] pList = { s };
                lblMessage.BeginInvoke(new UpdateListBoxCallBack(OnUpdateLabel), pList);
            }
            else
            {
                OnUpdateLabel(s);
            }
        }

        private void OnUpdateLabel(String s)
        {
            lblMessage.Text = s;
        }

        void set(string s)
        {
            if (InvokeRequired)
            {
                object[] pList = { s };
                lblprogressbar.BeginInvoke(new UpdateListBoxCallBack(OnUpdateLabel1), pList);
            }
            else
            {
                OnUpdateLabel1(s);
            }
        }

        private void OnUpdateLabel1(String s)
        {
            lblprogressbar.Text = s;
        }

        void set3(long s, long p)
        {
            if (InvokeRequired)
            {
                object[] pList = { s, p };
                progressbar.BeginInvoke(new Updatepgdstatus(OnUpdatepgdstatus), pList);
            }
            else
            {
                OnUpdatepgdstatus(s, p);
            }
        }

        private void OnUpdatepgdstatus(long s, long p)
        {
            progressbar.Maximum = s;
            progressbar.Value = p;
        }

        private void send_Click(object sender, EventArgs e)
        {
            t.Start();
        }

        private void sukien2(object sender, EventArgs e)
        {
            port.Clear();
        }
        private void clearPort(object sender, EventArgs e)
        {
            port.Clear();
        }

        private void ClearFile(object sender, EventArgs e)
        {
            txtFileName.Clear();
        }

        private void disconnect(object sender, EventArgs e)
        {
            label5.Text = "Connect have drop!";
            socketForClient.Close();
            tcpListener.Stop();
        }

        private void exit(object sender, EventArgs e)
        {
            Close();
        }

        private void clearfilename(object sender, EventArgs e)
        {
            txtFileName.Clear();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Control.CheckForIllegalCrossThreadCalls = false;
        }
    }
}

Hi a fix it as below.

private void OnUpdatepgdstatus(long s, long p)
{
    progressbar.Maximum = Convert.ToInt32(s);
    progressbar.Value = Convert.ToInt32(p);
}

So when I choose fie *iso about 2.5G it still fail ? if i replace to ToInt64 it not appropriate

Ok I think I've got it now. Since the progress bar will only accept int anything over 2 GB will be too large. To accommodate larger files make the progressbar.maximum a fraction of the total size, maybe 1 tenth. Then do the PerformStep 10 times for every one your were doing before(i.e. If you were doing the PerformStep every 1,000 bytes do it every 10,000 bytes).

This article has been dead for over six months. Start a new discussion instead.