public Form1() { InitializeComponent(); screenShotListView=null; Name=""; currentHistory=-1; commandHistory=new List<string>(); server=new MessageServer(); server.NewUserAdded+=OnNewUserAdded; server.UserRemoved+=OnUserRemoved; server.MessageReceived+=OnMessageReceived; server.ScreenShotReceived+=OnScreenShotReceived; GetUserColors(); localAddress=GetLocalIPAddress(); if(localAddress==null){ MessageBox.Show("ネットワークに接続していません。","",MessageBoxButtons.OK,MessageBoxIcon.Error); Application.Exit(); } server.Start(); UpdateTitle(); }
private static void Main(string[] args) { Log.SetLogFile(".\\Logs\\MessageLog.log"); start: MessageServer.Clients = new List <Client>(); Log.Entitle("Message Server v.{0}.{1}", 10, 10); try { Settings.Initialize(); MessageServer.AutoRestartTime = 15; // TODO: Get actual restart-time. Log.Inform("Automatic restart time set to {0} seconds.", MessageServer.AutoRestartTime); Database.Test(); Database.Analyze(false); // NOTE: The shop server uses mcdb for information like items, etcetera. MessageServer.RemoteEndPoint = new IPEndPoint(Settings.GetIPAddress("ExternalIP", "Message"), Settings.GetInt("Port", "Message")); //MapleData.Initialize(); MessageServer.Listener = new TcpListener(IPAddress.Any, MessageServer.RemoteEndPoint.Port); MessageServer.Listener.Start(); Log.Inform("Initialized clients listener on {0}.", MessageServer.Listener.LocalEndpoint); MessageServer.IsAlive = true; } catch (Exception e) { #if DEBUG Log.Error(e.ToString()); #else Log.Error(e); #endif } if (MessageServer.IsAlive) { Log.Success("Server started on thread {0}.", Thread.CurrentThread.ManagedThreadId); new Thread(new ThreadStart(InteroperabilityClient.Main)).Start(); } else { Log.Inform("Could not start server because of errors."); } while (MessageServer.IsAlive) { MessageServer.AcceptDone.Reset(); MessageServer.Listener.BeginAcceptSocket(new AsyncCallback(MessageServer.OnAcceptSocket), null); MessageServer.AcceptDone.WaitOne(); } Client[] remainingClients = MessageServer.Clients.ToArray(); foreach (Client client in remainingClients) { client.Dispose(); } MessageServer.Dispose(); Log.Warn("Server stopped."); if (MessageServer.AutoRestartTime > 0) { Log.Inform("Attempting auto-restart in {0} seconds.", MessageServer.AutoRestartTime); Thread.Sleep(MessageServer.AutoRestartTime * 1000); goto start; } else { Console.Read(); } }