//Точка входа в программу. Код внутри метода Main будет выполнен этой программой static void Main(string[] args) { //объект core(ядро) будет управлять работой сервера, принимать сообщения, управлять пользователями и тд var core = new ServerCore(); //ядро работает параллельно с основной программой, для начала работы надо вызвать метод StartWork() core.StartWork(); //Немного логирования чтобы понять, что сервер запустился Console.WriteLine("STARTED!"); //Если в консоли сервера мы нежмем Enter то выполнится метод ReadLine() Console.ReadLine(); //И мы остановим работу сервера core.Stop(); }
private void StartServerButton_Click(object sender, RoutedEventArgs e) { try { bStartServer.IsEnabled = false; if (ServerCore.IsStarted) //If started { ServerCore.Stop(); StatusColor.Fill = Brushes.WhiteSmoke; bStartServer.Content = "Start server"; } else { var port = Convert.ToInt32(tb_port.Text); if (port < 0 || port > 65535) { throw new FormatException("Port is " + (port < 0 ? "negative" : "greater than 65535")); } bStartServer.Content = "Server starting..."; ServerCore.Start(port); StatusColor.Fill = Brushes.LawnGreen; bStartServer.Content = "Pause server"; } bStartServer.IsEnabled = true; } catch (FormatException ex) { MessageBox.Show("Port format error: " + ex.Message); Logger.LogError("User input error. Port format error: " + ex.Message); } catch (Exception ex) { StatusColor.Fill = Brushes.Red; Logger.LogError("Error: " + ex.Message); } }