public static async Task ProcessInput(Stream networkStream, string input_line) { if (!String.IsNullOrEmpty(input_line)) { StreamWriter writer = new StreamWriter(networkStream); writer.AutoFlush = true; await writer.WriteLineAsync(await CommandResolve.Resolve(input_line)); await CommandResolve.ProcessStream(networkStream); } }
public static async Task ProcessStream(Stream networkStream) { try { StreamReader reader = new StreamReader(networkStream); StreamWriter writer = new StreamWriter(networkStream); writer.AutoFlush = true; while (true) { string request = await reader.ReadLineAsync(); if (request != null) { Console.WriteLine("Received echo: " + request); string echo_str = await CommandResolve.Resolve(request); if (!String.IsNullOrEmpty(echo_str)) { await writer.WriteLineAsync(echo_str); } else { break; // unvalid command or command complete } } else { break; // Client closed connection } } } catch (Exception ex) { Console.WriteLine(ex.Message); } }