Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
            }
        }