serverlist handler + basic crypto, rename project

This commit is contained in:
raphaeIl
2025-01-08 23:19:50 -05:00
parent f855950370
commit 55c3fc1fec
563 changed files with 278 additions and 206 deletions

View File

@@ -0,0 +1,61 @@
using System.Net.Sockets;
using System.Net;
using Serilog;
using System.Reflection;
using Novaria.GameServer.Protocol;
namespace Novaria.GameServer
{
public class GameServer
{
private readonly TcpListener listener;
private static GameServer _instance;
public static readonly int GameServerPort = 6969;
public static GameServer Instance
{
get
{
return _instance ??= new GameServer();
}
}
public GameServer()
{
listener = new(IPAddress.Parse("0.0.0.0"), GameServerPort);
}
public void Start()
{
while (true)
{
try
{
listener.Start();
Log.Information($"{nameof(GameServer)} started and listening on port {GameServerPort}");
while (true)
{
TcpClient tcpClient = listener.AcceptTcpClient();
string id = tcpClient.Client.RemoteEndPoint!.ToString()!;
Log.Information($"{id} connected");
Task.Run(() => HandleMessage(tcpClient));
}
} catch (Exception ex)
{
Log.Information("TCP listener error: " + ex.Message);
}
}
}
public void HandleMessage(TcpClient tcpClient)
{
Connection connection = Connection.CreateConnection(tcpClient);
connection.HandleMessage(tcpClient);
}
}
}