🍭
webserv
  • Webserv tutorials
  • 학습 | 웹(Web)
  • 학습 | 웹서버(Webserver)
  • 학습 | HTTP 개요
  • 학습 | 리퀘스트(Request)
  • 학습 | 리스펀스(Response)
  • 학습 | CGI
  • 학습 | RFC
  • 학습 | 소켓과 TCP 커넥션
  • 학습 | 서브젝트(Mandatory)
  • 실습 | 서버 프로그램
  • 실습 | 클라이언트 프로그램
  • 실습 | 통신 테스트
  • 실습 | telnet
  • 실습 | nginx
  • 설계 | 설계의 중요성
  • 설계 | 플로우차트
  • 설계 | 설정 파일
  • 설계 | 객체 설계
  • 설계 | 팀 코드 컨벤션
  • 설계 | 클래스 명세서
  • 설계 | 협업환경 구성
  • 구현 | 메인함수
  • 구현 | 서버생성
  • 구현 | Select
  • 구현 | 서버제어
  • 구현 | 요청 읽기
  • 구현 | 메소드 실행하기
  • 구현 | 응답 생성하기
  • 구현 | CGI 실행하기
  • 구현 | 응답 보내기
  • 구현 | 주요 메소드
  • 구현 | Libft
  • 구현 | 구현 테크닉 16
  • 구현 | 로그
  • 테스트 | Postman
  • 테스트 | Tester
  • 테스트 | 브라우저
  • 테스트 | Siege
  • 보너스 파트
  • 학습 레퍼런스
  • 튜토리얼을 끝내며
Powered by GitBook
On this page

Was this helpful?

구현 | 메인함수

main.cpp

서버를 만들고, 문제가 없으면 실행하는 간단한 구조입니다.

    ServerManager manager;

    manager.openLog();
    if (ac > 2)
        manager.exitServer("There are many arguments.");
    else {
        try {
            if (ac == 2)
                manager.createServer(av[1], env);
            else
                manager.createServer(DEFAULT_CONFIG_FILE_PATH, env);
        } catch (std::exception& e) {
            manager.exitServer(e.what());
        }
    }
    try {
        manager.runServer();
    } catch (std::exception& e) {
        manager.exitServer(e.what());
    }
    exit(EXIT_SUCCESS);

절대 죽지 않는 서버를 만들고 싶다면, runServer 함수를 실행하고 예외가 발생했을 때 exitServer 함수를 실행시키지 않으면 됩니다. 서버를 다시 만들고 실행하도록 구조를 변경하면 되죠.

하지만 어떤 에러가 발생했느냐에 따라 재시작할 수 없는 상황일 수 있고, 개발 단계에서는 에러를 감지하는 것이 우선이기 때문에 종료하도록 처리하는 것이 낫습니다.

Previous설계 | 협업환경 구성Next구현 | 서버생성

Last updated 4 years ago

Was this helpful?