Files
a301_mmo_game_server/ClientTester/TempServer/Program.cs
2026-02-28 14:16:07 +09:00

48 lines
1.2 KiB
C#

using LiteNetLib;
using LiteNetLib.Utils;
const int PORT = 9500;
const string CONNECTION_KEY = "game";
var listener = new EventBasedNetListener();
var server = new NetManager(listener);
listener.ConnectionRequestEvent += request =>
{
request.AcceptIfKey(CONNECTION_KEY);
};
listener.PeerConnectedEvent += peer =>
{
Console.WriteLine($"[CONNECT] {peer.Port} (ID:{peer.Id}, Total:{server.ConnectedPeersCount})");
};
listener.PeerDisconnectedEvent += (peer, info) =>
{
Console.WriteLine($"[DISCONNECT] {peer.Port} Reason:{info.Reason} (Remaining:{server.ConnectedPeersCount})");
};
listener.NetworkReceiveEvent += (fromPeer, reader, channel, deliveryMethod) =>
{
var msg = reader.GetString();
Console.WriteLine($"[RECV] ID:{fromPeer.Id} → {msg}");
// 클라이언트 ReceivedCount 증가시키려면 응답 필요
var writer = new NetDataWriter();
writer.Put($"ack:{msg}");
fromPeer.Send(writer, deliveryMethod);
reader.Recycle();
};
server.Start(PORT);
Console.WriteLine($"[SERVER] Started on port {PORT}. Press Enter to stop.");
while (!Console.KeyAvailable)
{
server.PollEvents();
Thread.Sleep(15);
}
server.Stop();
Console.WriteLine("[SERVER] Stopped.");