Epicenter_SERVER.FileServer.HandleClientCommUpload C# (CSharp) Method

HandleClientCommUpload() private method

private HandleClientCommUpload ( object client ) : void
client object
return void
        private void HandleClientCommUpload(object client)
        {
            // Getting the dataStream
            TcpClient tcpClient = (TcpClient)client;
            NetworkStream clientStream = tcpClient.GetStream();

            // Custom variables
            byte[] outgoing_raw_data = new byte[4096];
            int oldPos = 0;

            FileStream toRead = new FileStream(locToReadFrom, FileMode.Open, FileAccess.Read);
            long len = toRead.Length;
            for (long i = 0; i < len; )
            {
                if (len - i > 4096)
                {
                    toRead.Read(outgoing_raw_data, 0, 4096);
                    clientStream.Write(outgoing_raw_data, 0, 4096);
                    i += 4096;
                }
                else
                {
                    toRead.Read(outgoing_raw_data, 0, (int)(len - i));
                    clientStream.Write(outgoing_raw_data, 0, (int)(len - i));
                    i += len - i;
                }

                if ( (i / 1000) - oldPos > 20)
                {
                    owner.ReportIn = (i / 1000).ToString() + "/" + (len/1000).ToString() + "KB uploaded";
                    oldPos = (int)(i / 1000);
                }
            }

            clientStream.Close();
            clientStream.Dispose();
            tcpClient.Close();

            isListening = false;
            listener.Stop();
            MessageBox.Show("File upload complete.", "Complete", MessageBoxButtons.OK, MessageBoxIcon.Information);
            owner.ReportIn = "File upload complete.";
        }