public Servidor(int porta, String endereçoBase) {
    try {
      socketDoServidor = new ServerSocket(porta, 1, InetAddress.getByName(endereçoBase));
    } catch (UnknownHostException erro) {
      RegistroDeEventos.registrarEvento(
          "Erro ao iniciar o servidor. Endereço base não encontrado. Finalizando programa");
      System.exit(-1);
    } catch (IOException e) {
      RegistroDeEventos.registrarEvento(
          "Erro ao iniciar o servidor. Houve um problema na criação do socket ou o servidor já está iniciado. Finalizando programa");
      System.exit(-1);
    }

    RegistroDeEventos.registrarEvento("Servidor iniciado em " + endereçoBase + ":" + porta);
    aguardarRequisição();
  }
  private String converterFluxoDeEntradaEmTexto(InputStream arquivoDeEntrada) {
    String textoDeEntrada = "";
    try {
      BufferedReader leitor =
          new BufferedReader(new InputStreamReader(arquivoDeEntrada), TAMANHO_DO_BUFFER);
      StringWriter escritor = new StringWriter(TAMANHO_DO_BUFFER);
      while (leitor.ready()) {
        escritor.write(leitor.readLine() + "\n");
        escritor.flush();
      }
      textoDeEntrada = escritor.toString();
      escritor.close();
      RegistroDeEventos.registrarEvento("\n" + textoDeEntrada);
    } catch (IOException erro) {
      RegistroDeEventos.registrarEvento(
          "Erro na conversão do fluxo de entrada para texto da requisição do cliente");
      erro.printStackTrace();
    }

    return textoDeEntrada;
  }
 private void aguardarRequisição() {
   while (true) {
     RegistroDeEventos.registrarEvento("Aguardando requisição do cliente");
     Socket socketDoCliente;
     InputStream arquivoDeEntrada;
     OutputStream arquivoDeSaída;
     try {
       socketDoCliente = socketDoServidor.accept();
       RegistroDeEventos.registrarEvento(
           "Cliente conectado com o IP: " + socketDoCliente.getInetAddress());
       arquivoDeEntrada = socketDoCliente.getInputStream();
       arquivoDeSaída = socketDoCliente.getOutputStream();
       processarEResponderRequisição(arquivoDeEntrada, arquivoDeSaída);
       fecharConexão(socketDoCliente, arquivoDeEntrada, arquivoDeSaída);
       RegistroDeEventos.registrarEvento("Conexão com o cliente encerrada, requisição respondida");
     } catch (IOException erro) {
       RegistroDeEventos.registrarEvento("Erro ao processar e responder a requisição do cliete");
       erro.printStackTrace();
       continue;
     }
   }
 }