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.");