✅ Stack overflow.
Im doing a server in c#
here is the main
Ok so the problem is
Console.WriteLine("{DATA IN}: " + message);
in HandleMessage function is getting spammed and server crashes
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 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#
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 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);
});
}
}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