✅ Stack overflow.

Im doing a server in c#
here is the main
c#
        public static void Main(string[] args)
        {
            while (true)
            {
                TcpClient Client = Server.AcceptTcpClient();
                Thread clientThread = new Thread(new ParameterizedThreadStart(HandleClient));
                clientThread.Start(Client);
            }
        }


c#
        public static void HandleClient(object Client)
        {
            TcpClient tcpClient = (TcpClient)Client;


            NetworkStream stream = tcpClient.GetStream();

            try
            {
                byte[] buffer = new byte[1024];
                int bytesRead;

                while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    string message = Encoding.UTF8.GetString(buffer, 0, bytesRead);

                    if (message == "")
                        return;


                    HandleMessage(message, tcpClient);
                }
              }
          }

c#
 private static void HandleMessage(string message, TcpClient client)
 {
     // some logic
      Console.WriteLine("{DATA IN}: " + message);
      HandleJsonMessage(msg, client);
 }


c#
private static void HandleJsonMessage(string msg, TcpClient client)
{
     if (msg == "ready") {
                      // some logic and check result after 7 seconds
                        ThreadPool.QueueUserWorkItem(o =>
                        {
                            Thread.Sleep(7000);


                            Packet.sendMsg("%xt%getResult%-1%.", p1.Client);
                            Packet.sendMsg("%xt%getResult%-1%.", p2.Client);
                        });
       }
}




Ok so the problem is
Console.WriteLine("{DATA IN}: " + message);
in HandleMessage function is getting spammed and server crashes
Was this page helpful?