/// <summary> /// HostStart irá ligar o servidor HTTP em um IP e Porta definido na sua rede local. /// </summary> public void HostStart(int Port, string IP) { IP = IPAddress.Parse(IP).ToString(); if (listener.IsListening) { CWrite("O servidor já está ligado!"); } else { try { CWrite("Iniciando servidor..."); tStatus = (int)StatusServer.ServerLoading; ChangeStatusServer?.Invoke((StatusServer)tStatus); listener.Prefixes.Add("http://" + IP + ":" + Port + "/"); listener.Start(); CWrite("Servidor iniciado com sucesso em: http://" + IP + ":" + Port + "/"); tStatus = (int)StatusServer.ServerOn; ChangeStatusServer?.Invoke((StatusServer)tStatus); int arglocation = 0; listener.BeginGetContext(RequestHandler, Interlocked.Increment(ref arglocation)); } catch (UnauthorizedAccessException ex) { CWrite("Erro: " + ex.ToString()); } } LockConsole(); }
/// <summary> /// HostStop irá desligar o servidor HTTP, porém comando só irá funcionar se o servidor estiver inicializado por completo. /// </summary> public void HostStop() { if (listener.IsListening) { CWrite("Parando servidor..."); tStatus = (int)StatusServer.ServerLoading; ChangeStatusServer?.Invoke((StatusServer)tStatus); listener.Stop(); listener.Abort(); CWrite("Servidor desligado com sucesso!"); tStatus = (int)StatusServer.ServerOff; ChangeStatusServer?.Invoke((StatusServer)tStatus); } else { CWrite("O servidor já está parado!"); } }