Cleanup & Fixes for .NET 5 (#309)
- [X] Fixes several bugs - [X] Updates more ordinal issues - [X] Cleans up the code a bit - [X] Turns classes static that should have been - [X] Changes TcpServer.Instances to a HashSet Bumps release version
This commit is contained in:
parent
4ad8811df2
commit
525cda5413
266 changed files with 1348 additions and 1800 deletions
|
|
@ -513,7 +513,7 @@ namespace Server.Network
|
|||
continue;
|
||||
}
|
||||
|
||||
var bytesWritten = await Connection.SendAsync(result.Buffer, SocketFlags.None);
|
||||
var bytesWritten = await Connection.SendAsync(result.Buffer, SocketFlags.None).ConfigureAwait(false);
|
||||
|
||||
if (bytesWritten > 0)
|
||||
{
|
||||
|
|
@ -567,7 +567,7 @@ namespace Server.Network
|
|||
continue;
|
||||
}
|
||||
|
||||
var bytesWritten = await socket.ReceiveAsync(result.Buffer, SocketFlags.None);
|
||||
var bytesWritten = await socket.ReceiveAsync(result.Buffer, SocketFlags.None).ConfigureAwait(false);
|
||||
if (bytesWritten <= 0)
|
||||
{
|
||||
break;
|
||||
|
|
@ -596,11 +596,9 @@ namespace Server.Network
|
|||
|
||||
public static void HandleAllReceives()
|
||||
{
|
||||
var clients = TcpServer.Instances;
|
||||
|
||||
for (int i = 0; i < clients.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
clients[i].HandleReceive();
|
||||
ns.HandleReceive();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -662,11 +660,9 @@ namespace Server.Network
|
|||
|
||||
public static void FlushAll()
|
||||
{
|
||||
var clients = TcpServer.Instances;
|
||||
|
||||
for (int i = 0; i < clients.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
clients[i].Flush();
|
||||
ns.Flush();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -685,11 +681,9 @@ namespace Server.Network
|
|||
{
|
||||
long curTicks = Core.TickCount;
|
||||
|
||||
var clients = TcpServer.Instances;
|
||||
|
||||
for (int i = 0; i < clients.Count; ++i)
|
||||
foreach (var ns in TcpServer.Instances)
|
||||
{
|
||||
clients[i].CheckAlive(curTicks);
|
||||
ns.CheckAlive(curTicks);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ namespace Server.Network
|
|||
{
|
||||
private const int CompressorBufferSize = 0x10000;
|
||||
|
||||
private const int BufferSize = 4096;
|
||||
private readonly int m_Length;
|
||||
|
||||
private byte[] m_CompiledBuffer;
|
||||
|
|
@ -120,9 +119,11 @@ namespace Server.Network
|
|||
}
|
||||
}
|
||||
|
||||
private readonly object _object = new object();
|
||||
|
||||
public byte[] Compile(bool compress, out int length)
|
||||
{
|
||||
lock (this)
|
||||
lock (_object)
|
||||
{
|
||||
if (m_CompiledBuffer == null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
|
||||
using System;
|
||||
using System.IO;
|
||||
using Server.Accounting;
|
||||
using System.Buffers;
|
||||
using Server.Accounting;
|
||||
|
||||
namespace Server.Network
|
||||
{
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ namespace Server.Network
|
|||
|
||||
public static IPEndPoint[] ListeningAddresses { get; private set; }
|
||||
public static TcpListener[] Listeners { get; private set; }
|
||||
public static List<NetState> Instances { get; } = new List<NetState>(128);
|
||||
public static HashSet<NetState> Instances { get; } = new HashSet<NetState>(128);
|
||||
|
||||
public static ConcurrentQueue<NetState> m_ConnectedQueue = new ConcurrentQueue<NetState>();
|
||||
|
||||
|
|
@ -180,7 +180,7 @@ namespace Server.Network
|
|||
|
||||
try
|
||||
{
|
||||
socket = await listener.AcceptSocketAsync();
|
||||
socket = await listener.AcceptSocketAsync().ConfigureAwait(false);
|
||||
if (Instances.Count >= MaxConnections)
|
||||
{
|
||||
socket.Send(socketRejected, SocketFlags.None);
|
||||
|
|
@ -205,8 +205,10 @@ namespace Server.Network
|
|||
|
||||
if (_nextMaximumSocketsReachedMessage <= ticks)
|
||||
{
|
||||
var ipep = (IPEndPoint)socket!.RemoteEndPoint;
|
||||
Console.WriteLine("Listener {0}:{1}: Failed (Maximum connections reached)", ipep.Address, ipep.Port);
|
||||
if (socket?.RemoteEndPoint is IPEndPoint ipep)
|
||||
{
|
||||
Console.WriteLine("Listener {0}:{1}: Failed (Maximum connections reached)", ipep.Address, ipep.Port);
|
||||
}
|
||||
_nextMaximumSocketsReachedMessage = ticks + _listenerErrorMessageDelay;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue