// public delegate void StartEventHandler(object sender, EventArgs e); // public event StartEventHandler OnStart; public EylisHost(EylisConfig config) { this.config = config ?? EylisConfig.LoadConfig(); if (this.Detect(this.config.Port)) { this.config.WriteLog($"Port:{this.config.Port} 已被占用"); Environment.Exit(0); } this.users = new HashSet <EylisUser>(); this.host = new TcpListener(IPAddress.Any, this.config.Port); this.token = new CancellationTokenSource(); }
public static EylisConfig LoadConfig() { if (!File.Exists(config)) { var config = new EylisConfig("127.0.0.1");; var json = JsonConvert.SerializeObject(config, Formatting.Indented); File.WriteAllText(EylisConfig.config, json); return(config); } else { try { return(JsonConvert.DeserializeObject <EylisConfig>(File.ReadAllText(config))); } catch { Console.WriteLine($"檔案 {config} 毀損"); Environment.Exit(-1); return(null); } } }