Example #1
0
        private static void Main(string[] args)
        {
            XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net_server.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            Settings = new SimpleSettings("server");
            Database = new Database(
                Settings.GetValue <string>("db_host", "127.0.0.1"),
                Settings.GetValue <string>("db_database", "rotmgprod"),
                Settings.GetValue <string>("db_user", "root"),
                Settings.GetValue <string>("db_auth", "lord2yUkarI81!dd@cha"));
            GameData = new XmlData();

            InstanceId              = Guid.NewGuid().ToString();
            Console.CancelKeyPress += (sender, e) => e.Cancel = true;

            var port = Settings.GetValue <int>("port", "8080");

            if (RunPreCheck(port))
            {
                listener = new HttpListener();
                listener.Prefixes.Add($"http://*:{port}/");
                listener.Start();

                listener.BeginGetContext(ListenerCallback, null);
                Logger.Info($"Listening at port {port}...");
            }
            else
            {
                Logger.Error($"Port {port} is occupied. Can't start listening...\nPress ESC to exit.");
            }

            while (Console.ReadKey(true).Key != ConsoleKey.Escape)
            {
                ;
            }

            Logger.Info("Terminating...");
            //To prevent a char/list account in use if
            //both servers are closed at the same time
            while (currentRequests.Count > 0)
            {
                ;
            }
            listener?.Stop();
            GameData.Dispose();
            Settings.Dispose();
        }
Example #2
0
        private static void Main(string[] args)
        {
            XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net_server.config"));

            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
            Thread.CurrentThread.Name           = "Entry";

            Settings = new SimpleSettings("server");
            Database = new Database(
                Settings.GetValue("dbHost", "127.0.0.1"),
                Settings.GetValue("dbName", "fluffyadventure"),
                Settings.GetValue("dbUser", "root"),
                Settings.GetValue("dbPassword", ""));
            GameData = new XmlData();

            var port = Settings.GetValue <int>("port", "8080");

            listener = new HttpListener();
            listener.Prefixes.Add($"http://*:{port}/");
            listener.Start();

            listener.BeginGetContext(ListenerCallback, null);
            Console.CancelKeyPress += (sender, e) => e.Cancel = true;
            Logger.Info("Listening at port " + port + "...");

            while (Console.ReadKey(true).Key != ConsoleKey.Escape)
            {
                ;
            }

            Logger.Info("Terminating...");
            while (currentRequests.Count > 0)
            {
                ;
            }
            listener.Stop();
            GameData.Dispose();
            Settings.Dispose();
        }
 public void Dispose()
 {
     settings.Dispose();
 }