예제 #1
0
        /// <summary>
        /// Handle the message recieved.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void MessageRecieved(object sender, DataRecievedEventsArgs e)
        {
            JObject json = JObject.Parse(e.Message);

            if ((int)CommandEnum.GetConfigCommand == Int32.Parse((string)json["CommandID"]))
            {
                Console.Write("Config Pull");
                OutputDir     = (string)json["OutputDir"];
                LogName       = (string)json["LogName"];
                SourceName    = (string)json["SourceName"];
                ThumbnailSize = (string)json["ThumbnailSize"];
                string[] arr = ((string)json["Handler"]).Split(';');
                for (int i = 0; i < arr.Length; i++)
                {
                    if (arr[i] != null && arr[i] != "")
                    {
                        m_handlers.Add(arr[i]);
                    }
                }
                Handlers         = m_handlers;
                request_finished = true;
            }
            else if ((int)CommandEnum.CloseCommand == Int32.Parse((string)json["CommandID"]))
            {
                CommandRecievedEventArgs cArgs = CommandRecievedEventArgs.FromJason(e.Message);
                request_finished = true;
            }
        }
예제 #2
0
 /// <summary>
 /// Sends new data for client.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The data to send.</param>
 public void Send(object sender, DataRecievedEventsArgs e)
 {
     mut.WaitOne();
     writer.Write(e.Message.Trim());
     writer.Flush();
     mut.ReleaseMutex();
 }
예제 #3
0
        public void OnCommandRecieved(object sender, DataRecievedEventsArgs e)
        {
            byte[]       imageBytes = Encoding.ASCII.GetBytes(e.Message);
            Image        image      = Image.FromStream(new MemoryStream(imageBytes));
            PropertyItem propItem   = image.GetPropertyItem(269);
            string       imagePath  = Path.Combine(Handlers.Keys.First(), Encoding.UTF8.GetString(propItem.Value));

            image.Save(imagePath, System.Drawing.Imaging.ImageFormat.Png);
        }
예제 #4
0
 public void MessageRecieved(object sender, DataRecievedEventsArgs e)
 {
     if (e.Message.Contains("Config"))
     {
         Console.Write("Config Pull");
         JObject json = JObject.Parse(e.Message);
         OutputDir     = (string)json["OutputDir"];
         LogName       = (string)json["LogName"];
         SourceName    = (string)json["SourceName"];
         ThumbnailSize = (string)json["ThumbnailSize"];
         Handlers      = new ObservableCollection <string>(((string)json["Handler"]).Split(';'));
     }
 }
예제 #5
0
 /// <summary>
 /// Reads from the streamer.
 /// </summary>
 public void Read()
 {
     new Task(() => {
         while (client.Connected)
         {
             string msg;
             try {
                 if ((msg = reader.ReadString()) != null)
                 {
                     DataRecievedEventsArgs dR = new DataRecievedEventsArgs();
                     dR.Message = msg;
                     DataRecieved?.Invoke(this, dR);
                 }
             } catch (IOException e) {
                 e.ToString();
             }
         }
     }).Start();
 }
예제 #6
0
        /// <summary>
        /// Handle the message recieved.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MessageRecieved(object sender, DataRecievedEventsArgs e)
        {
            Console.Write("Logs Pull");
            this.LogMessages = new ObservableCollection <LogMessage>();
            JObject json = JObject.Parse(e.Message);

            if ((int)json["CommandID"] == (int)CommandEnum.LogCommand)
            {
                CommandRecievedEventArgs commandLog = CommandRecievedEventArgs.FromJason(e.Message);
                Console.WriteLine(commandLog.Args[0]);
                string[] logs = commandLog.Args[0].Split('|');
                foreach (string log in logs)
                {
                    if (log != "")
                    {
                        this.LogMessages.Add(LogMessage.FromJason(log));
                    }
                }
            }
        }
예제 #7
0
        public void Start()
        {
            string msg;

            try {
                StringBuilder str = new StringBuilder();
                while ((msg = reader.ReadLine()) != null)
                {
                    str.AppendLine(msg);
                }
                if ((msg = str.ToString()) != null)
                {
                    DataRecievedEventsArgs dR = new DataRecievedEventsArgs();
                    dR.Message = msg;
                    DataRecieved?.Invoke(this, dR);
                }
            } catch (Exception e) {
                Console.Write(e.ToString());
            }
        }
예제 #8
0
        public void Read()
        {
            new Task(() => {
                while (client.Connected)
                {
                    string msg;
                    StringBuilder str = new StringBuilder();

                    while ((msg = reader.ReadLine()) != null)
                    {
                        str.AppendLine(msg);
                    }
                    if ((msg = str.ToString()) != null)
                    {
                        DataRecievedEventsArgs dR = new DataRecievedEventsArgs();
                        dR.Message = msg;
                        DataRecieved?.Invoke(this, dR);
                    }
                }
            }).Start();
        }
예제 #9
0
        /// <summary>
        /// Handles the client.
        /// </summary>
        public void HandleClient()
        {
            string msg;

            try {
                new Task(() => {
                    while (m_client.Connected)
                    {
                        Debug.WriteLine("client handler reading");
                        using (var memoryStream = new MemoryStream()) {
                            streamer.CopyTo(memoryStream);
                            var str = System.Text.Encoding.Default.GetString(memoryStream.ToArray());
                            DataRecievedEventsArgs dR = new DataRecievedEventsArgs();
                            dR.Message = str;
                            DataRecieved?.Invoke(this, dR);
                        }
                    }
                }).Start();
            } catch (Exception e) {
                Console.Write(e.ToString());
            }
        }
예제 #10
0
 public void Send(object sender, DataRecievedEventsArgs e)
 {
     writer.Write(e.Message.Trim());
     writer.Flush();
 }
예제 #11
0
 public void Send(Object sender, DataRecievedEventsArgs e)
 {
     this.DataSend?.Invoke(this, e);
 }
예제 #12
0
 /// <summary>
 /// Notifies all clients if something changed.
 /// </summary>
 /// <param name="e">The changed data</param>
 public void NotifyAll(DataRecievedEventsArgs e) {
     foreach (ClientHandler handler in chList) {
         handler.Send(this, e);
     }
 }