mirror of
https://git.lewd.wtf/PGR/ascnet
synced 2025-12-13 06:34:38 +01:00
GameServer + packet types, we aren't parsing yet
This commit is contained in:
54
AscNet.GameServer/Server.cs
Normal file
54
AscNet.GameServer/Server.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System.Net.Sockets;
|
||||
using System.Net;
|
||||
using AscNet.Common.Util;
|
||||
|
||||
namespace AscNet.GameServer
|
||||
{
|
||||
public class Server
|
||||
{
|
||||
public static readonly Logger c = new(nameof(GameServer), ConsoleColor.Cyan);
|
||||
public readonly Dictionary<string, Session> Sessions = new();
|
||||
private static Server? _instance;
|
||||
private readonly TcpListener listener;
|
||||
|
||||
public static Server Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
return _instance ??= new Server();
|
||||
}
|
||||
}
|
||||
|
||||
public Server()
|
||||
{
|
||||
listener = new(IPAddress.Parse("0.0.0.0"), Common.Common.config.GameServer.Port);
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
for (; ; )
|
||||
{
|
||||
try
|
||||
{
|
||||
listener.Start();
|
||||
c.Log($"{nameof(GameServer)} started and listening on port {Common.Common.config.GameServer.Port}");
|
||||
|
||||
for (; ; )
|
||||
{
|
||||
TcpClient tcpClient = listener.AcceptTcpClient();
|
||||
string id = tcpClient.Client.RemoteEndPoint!.ToString()!;
|
||||
|
||||
c.Warn($"{id} connected");
|
||||
Sessions.Add(id, new Session(id, tcpClient));
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
c.Error("TCP listener error: " + ex.Message);
|
||||
c.Log("Waiting 3 seconds before restarting...");
|
||||
Thread.Sleep(3000);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user