Diese Fehler treten auf meinem Game Server immer häufiger auf. Sie führen dazu, dass der Server immer wieder geschlossen und neu gestartet wird...
System.Net.Sockets.SocketException (0x80004005): An established connection was aborted by the software in your host machine
at System.Net.Sockets.Socket.BeginSend(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state)
at iRP.Game.Sessions.Session.SendData(Byte[] Data)
Dies ist der Code, aus dem diese Fehler generiert werden:
public void SendData(byte[] Data)
{
try
{
if (mSocket == null)
{
//Output.WriteLine("[SND] Socket has a null exception, which means it is now invalid. Remove this socket!", OutputLevel.CriticalError);
}
else
{
mSocket.BeginSend(Data, 0, Data.Length, SocketFlags.None, sendCallback, mSocket);
}
}
catch (Exception e)
{
string WhatToWrite = "Error handled (SESSION): " + e.ToString() + "\n\n" + e.Message + "\n\nStack: " + e.StackTrace + Environment.NewLine + "\n\n";
File.AppendAllText(Environment.CurrentDirectory + "\\data\\fatal.txt", WhatToWrite);
Program.Stop();
}
}
Die Puffergrößen sind korrekt eingestellt, wir verwenden KeepAlive für den Socket und verwenden Sende- und Empfangs-Timeouts.
Es wurde vorgeschlagen, die Firewall zu deaktivieren, aber immer, wenn ich dies tue, startet sich unser Spieleserver (Dedicated Server) neu, als ob er angegriffen würde, also muss die Firewall aktiviert bleiben.
Hat jemand eine andere Lösung für dieses Problem?
PS: Wir sind hinter DDoS Mitigation Services, die die Anzahl der Verbindungen begrenzen können...