using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
namespace ChatServer{
    class Program    {
        static void Main(string[] args)
        {
            IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(ipAddress, 5000);
            listener.Start();
            Console.WriteLine("Server started. Waiting for clients...");
            while (true)
            {
                TcpClient client = listener.AcceptTcpClient();
                Console.WriteLine("Client connected.");
                Thread t = new Thread(() => handleClient(client));
                t.Start();
            }
        }
        private static void handleClient(TcpClient client)
        {
            NetworkStream stream = client.GetStream();
            byte[] buffer = new byte[1024];
            int bytesRead;
            while (true)
            {
                bytesRead = stream.Read(buffer, 0, 1024);
                if (bytesRead == 0) break;
                string message = Encoding.ASCII.GetString(buffer, 0, bytesRead);
                Console.WriteLine("Received message: " + message);
                byte[] messageBytes = Encoding.ASCII.GetBytes("Received: " + message);
                stream.Write(messageBytes, 0, messageBytes.Length);
            }
            stream.Close();
            client.Close();
        }
    }
}