Example #1
0
        /// <summary>
        /// Event handler for receiving stream from Joined. Currently made for downloading files.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void StreamReceived(object sender, StreamReceivedFromServerEventArgs args)
        {
            UIHandler.WriteLog($"Downloading {DownloadFileTo.Replace(Filed.RootPath, "")}...");
            gettingFile = true;

            UIHandler.ResetProgressBar();

            long bytesRemaining = args.ContentLength;
            int  bytesRead      = 0;

            byte[] buffer = new byte[bufferSize];

            UIHandler.SetProgressBarMaxValue((int)bytesRemaining);

            Directory.CreateDirectory(Path.GetDirectoryName(DownloadFileTo));

            using (FileStream fs = new FileStream(DownloadFileTo, FileMode.CreateNew))
            {
                while (bytesRemaining > 0)
                {
                    bytesRead = args.DataStream.Read(buffer, 0, buffer.Length);
                    if (bytesRead > 0)
                    {
                        fs.Write(buffer, 0, bytesRead);
                        UIHandler.IncrementProgressBarValue(bytesRead);
                        bytesRemaining -= bytesRead;
                    }
                }
            }

            DownloadFileTo = "";
            clientH.Events.StreamReceived -= StreamReceived;

            gettingFile = false;
        }
Example #2
0
        private static void StreamReceived(object sender, StreamReceivedFromServerEventArgs args)
        {
            try
            {
                Console.Write("Stream from server [" + args.ContentLength + " bytes]: ");

                int    bytesRead      = 0;
                int    bufferSize     = 65536;
                byte[] buffer         = new byte[bufferSize];
                long   bytesRemaining = args.ContentLength;

                if (args.DataStream != null && args.DataStream.CanRead)
                {
                    while (bytesRemaining > 0)
                    {
                        bytesRead = args.DataStream.Read(buffer, 0, buffer.Length);
                        Console.WriteLine("Read " + bytesRead);

                        if (bytesRead > 0)
                        {
                            byte[] consoleBuffer = new byte[bytesRead];
                            Buffer.BlockCopy(buffer, 0, consoleBuffer, 0, bytesRead);
                            Console.Write(Encoding.UTF8.GetString(consoleBuffer));
                        }

                        bytesRemaining -= bytesRead;
                    }

                    Console.WriteLine("");
                }
                else
                {
                    Console.WriteLine("[null]");
                }

                if (args.Metadata != null && args.Metadata.Count > 0)
                {
                    Console.WriteLine("Metadata:");
                    foreach (KeyValuePair <object, object> curr in args.Metadata)
                    {
                        Console.WriteLine("  " + curr.Key.ToString() + ": " + curr.Value.ToString());
                    }
                }
            }
            catch (Exception e)
            {
                LogException("StreamReceived", e);
            }
        }
Example #3
0
 private static void ClientStreamReceived(object sender, StreamReceivedFromServerEventArgs args)
 {
     // Console.WriteLine("[client] stream from server: " + BytesToHex(Md5(args.Data)) + " (" + args.Data.Length + " bytes)");
     try
     {
         string md5 = BytesToHex(Md5(args.Data));
         if (!md5.Equals(_DataLargeMd5) && !md5.Equals(_DataSmallMd5))
         {
             Interlocked.Increment(ref _Failure);
             Console.WriteLine("[client] [stream] [async] Data MD5 validation failed");
         }
         else
         {
             Interlocked.Increment(ref _Success);
             // Console.WriteLine("[client] [stream] [async] Data MD5 validation success: " + md5);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.ToString());
     }
 }
Example #4
0
 static void StreamReceived(object sender, StreamReceivedFromServerEventArgs args)
 {
     Console.Write("Client received " + args.ContentLength + " bytes from server: MD5 " + Md5(args.DataStream));
 }
Example #5
0
 private void MeshClientStreamReceived(object sender, StreamReceivedFromServerEventArgs args)
 {
     Logger?.Invoke("[MeshClient] **UNSOLICITED** Message received from server " + PeerNode.IpPort + ": " + args.ContentLength + " bytes, ignoring");
 }
Example #6
0
 private void StreamReceived(object sender, StreamReceivedFromServerEventArgs args)
 {
     Logger?.Invoke("[ClusterClient] Stream received from server: " + args.ContentLength + " bytes");
     MessageReceived?.Invoke(this, new MessageReceivedEventArgs(args.Metadata, args.ContentLength, args.DataStream));
 }