private async void ProcessResult(TcpClient socket)
        {
            var input = new BufferedStream(socket.GetStream());
            var command = input.StreamReadLine();

            if (command.StartsWith("START"))
            {
                var targetIp = command.Split(' ')[1];

                if (!Outputs.ContainsKey(targetIp))
                {
                    var tcpClient = new TcpClient();
                    await tcpClient.ConnectAsync(targetIp.Split(':')[0], int.Parse(targetIp.Split(':')[1]));
                    if (tcpClient.Connected)
                    {
                        Console.WriteLine("Recording started: {0}", targetIp);
                        this.Outputs.Add(targetIp, new BufferedStream(tcpClient.GetStream()));
                    }
                }
            }
            else if (command.StartsWith("STOP"))
            {
                var targetIp = command.Split(' ')[1];

                Console.WriteLine("Recording stopped: {0}", targetIp);

                if (Outputs.ContainsKey(targetIp))
                {
                    var stream = Outputs[targetIp];
                    Outputs.Remove(targetIp);
                    stream.Close();
                }
            }

            socket.Close();
        }