Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Here\'s what I have so far Client side: static void Main(string[] args) { string

ID: 3828828 • Letter: H

Question

Here's what I have so far Client side:

static void Main(string[] args)

        {

            string input;

            IPEndPoint ipep;

            IPHostEntry localHost = Dns.GetHostByName(Dns.GetHostName));

            Console.WriteLine("Input the server IP Address [" + localHost);

            input = Console.ReadLine();

            if (input.Length < 1)

                ipep = new IPEndPoint(localHost.AddressList[0], 9050);

            else

                ipep = new IPEndPoint(IPAddress.Parse(input), 9050);

            //TcpClient client = new TcpClient("localhost", 9050);

            //TcpClient client = new TcpClient(ipep);

            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            client.Connect(ipep);

            //NetworkStream stream = client.GetStream();

            NetworksStream stream = new NetworkStream(client);

            StreamReader reader = new StreamReader(stream);

            StreamWriter writer = new StreamWriter(stream);

            input = reader.ReadLine();

            Console.WriteLine(input);

            String line = null;

            do

            {

                Console.Write("Enter Message for server Enter to Stop: ");

                line = Console.ReadLine();

                writer.WriteLine(line);

                writer.Flush();

                if (line.Length != 0)

                {

                    line = "Echo: " + reader.ReadLine();

                    Console.WriteLine(line);

                }

Here's what I have for Server side:

static void Main(string[] args)

        {

            /*

            const int bufSize = 1024 * 4;

            string input;

            String output;

             */

            IPHostEntry serverhost = Dns.GetHostByName(Dns.GetHostName());

            foreach (IPAddress address in serverhost.AddressList)

            {

                Console.WriteLine("Server Address: {0}", address.ToString());

            }

            IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);

            TCPListener server = new TCPListener(IPAddress.Any, 9050);

            server.Start();

            Console.WriteLine("Wating for client...");

            TcpClient client = server.AcceptTCPClient();

            Console.WriteLine("Connected with a client");

            NewtorkStream stream = client.GetStream();

            StreamReader reader = new StreamReader(stream);

            StreamWriter writer = new StreamWriter(stream);

            writer.WriteLine("This is my test server");

            writer.Flush();

            String line = null;

            while((line = reader.ReadLine()).Length !=0)

            {

                Console.WriteLine(line);

                writer.WriteLine(line);

                writer.Flush();

            }

            client.Close();

            server.Stop();

        }

    }

}

How do I add in C# Client/Server

1) Math: Client – Type an integer math question from console, like “3+4” or “10-5”; Server – Provide a solution to Client side, like “7” or “5”. Hit [Enter] or type “exit” to quit the programs.

2) Password: Server – Request password before providing any service to Client side; after 3 tries the server will close the connection.

Please show work. Thanks.

Explanation / Answer

static void Main(string[] args)

        {

            string input;

            IPEndPoint ipep;

            IPHostEntry localHost = Dns.GetHostByName(Dns.GetHostName));

            Console.WriteLine("Input the server IP Address [" + localHost);

            input = Console.ReadLine();

            if (input.Length < 1)

                ipep = new IPEndPoint(localHost.AddressList[0], 9050);

            else

                ipep = new IPEndPoint(IPAddress.Parse(input), 9050);

            //TcpClient client = new TcpClient("localhost", 9050);

            //TcpClient client = new TcpClient(ipep);

            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            client.Connect(ipep);

            //NetworkStream stream = client.GetStream();

            NetworksStream stream = new NetworkStream(client);

            StreamReader reader = new StreamReader(stream);

            StreamWriter writer = new StreamWriter(stream);

            input = reader.ReadLine();

            Console.WriteLine(input);

            String line = null;

            do

            {

                Console.Write("Enter Message for server Enter to Stop: ");

                line = Console.ReadLine();

                writer.WriteLine(line);

                writer.Flush();

                if (line.Length != 0)

                {

                    line = "Echo: " + reader.ReadLine();

                    Console.WriteLine(line);

                }

Here's what I have for Server side:

static void Main(string[] args)

        {

            /*

            const int bufSize = 1024 * 4;

            string input;

            String output;

             */

            IPHostEntry serverhost = Dns.GetHostByName(Dns.GetHostName());

            foreach (IPAddress address in serverhost.AddressList)

            {

                Console.WriteLine("Server Address: {0}", address.ToString());

            }

            IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9050);

            TCPListener server = new TCPListener(IPAddress.Any, 9050);

            server.Start();

            Console.WriteLine("Wating for client...");

            TcpClient client = server.AcceptTCPClient();

            Console.WriteLine("Connected with a client");

            NewtorkStream stream = client.GetStream();

            StreamReader reader = new StreamReader(stream);

            StreamWriter writer = new StreamWriter(stream);

            writer.WriteLine("This is my test server");

            writer.Flush();

            String line = null;

            while((line = reader.ReadLine()).Length !=0)

            {

                Console.WriteLine(line);

                writer.WriteLine(line);

                writer.Flush();

            }

            client.Close();

            server.Stop();

        }

    }