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(); }