static void Main(string[] args) { const ushort port = 6005; const int maxClients = 100; Library.Initialize(); _server = new Host(); Address address = new Address(); address.Port = port; _server.Create(address, maxClients); Console.WriteLine($"Circle ENet Server started on {port}"); Event netEvent; while (!Console.KeyAvailable) { bool polled = false; while (!polled) { if (_server.CheckEvents(out netEvent) <= 0) { if (_server.Service(5, out netEvent) <= 0) { break; } polled = true; } switch (netEvent.Type) { case EventType.None: break; case EventType.Connect: Console.WriteLine("Client connected - ID: " + netEvent.Peer.ID + ", IP: " + netEvent.Peer.IP); netEvent.Peer.Timeout(32, 1000, 4000); break; case EventType.Disconnect: Console.WriteLine("Client disconnected - ID: " + netEvent.Peer.ID + ", IP: " + netEvent.Peer.IP); HandleLogout(netEvent.Peer.ID); break; case EventType.Timeout: Console.WriteLine("Client timeout - ID: " + netEvent.Peer.ID + ", IP: " + netEvent.Peer.IP); HandleLogout(netEvent.Peer.ID); break; case EventType.Receive: //Console.WriteLine("Packet received from - ID: " + netEvent.Peer.ID + ", IP: " + netEvent.Peer.IP + ", Channel ID: " + netEvent.ChannelID + ", Data length: " + netEvent.Packet.Length); HandlePacket(ref netEvent); netEvent.Packet.Dispose(); break; } } _server.Flush(); } Library.Deinitialize(); }