Beispiel #1
0
        //   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();
        }
Beispiel #2
0
 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);
         }
     }
 }