static void Main(string[] args) { // Get the port number. ushort port = 4502; if (args != null) { foreach (string arg in args) { bool success = ushort.TryParse(arg, out port); if (success) { break; } } } // Set up logging. Log.ExceptionDetailsEnabled = true; Log.TraceEnabled = true; // Create the socket engine. SocketConnection listenSocket = new SocketConnection(); // Display our version information. string assemblyName = listenSocket.GetType().Assembly.GetName().Name; string assemblyVersion = listenSocket.GetType().Assembly.GetName().Version.ToString(); System.IO.FileInfo assemblyInfo = new System.IO.FileInfo(listenSocket.GetType().Assembly.Location); DateTime assemblyDate = assemblyInfo.LastWriteTime; Log.Trace("Running " + assemblyName + " version " + assemblyVersion + " located at " + assemblyInfo + " and created on " + assemblyDate.ToShortDateString() + "."); // Initialize sockets, load the database, and run the game. System.Net.Sockets.Socket control = listenSocket.InitializeSocket(port); Database database = new Database(); database.LoadDatabase( ); Log.Trace(String.Format("{0} MUD is now running on port {1}.", Database.SystemData.MudName, port)); try { listenSocket.MainGameLoop(control); } catch (Exception ex) { Log.Error("Unhandled exception running main game loop: " + ex.ToString()); control.Close(); return; } control.Close(); // End of game. Log.Trace("Normal shutdown of game."); return; }