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.";
}