Class
Master
<aside>
💡 어플리케이션의 최상단 클래스
- 클라이언트의 첫 요청을 받는다
- Worker들을 관리한다
</aside>
생성자
- 호출할 멤버 함수들: init(), bind(), listen()
멤버 변수
- maxfd: 최대fd
- listen_socket: socket() 으로 생성된 소켓 디스크립터
- vector: Worker 클래스들을 담을 배열
- Config 클래스
- pollfds: pollfd 구조체의 배열
멤버 함수
- init(): socket()으로 소켓 만들고
sockaddr_in
구조체 초기화
- bind()
- listen()
- run()
- addListenSocket(): pollfds 에 listen_socket을 추가
- 무한루프에서 poll() 호출
- listen_socket에 요청이 들어오면 Worker 생성자 호출
- Worker 벡터를 순회하면서 revents 확인 (worker 상태 확인)
Worker
<aside>
💡 새로운 클라이언트에서 요청이 들어오면 생성되는 소켓 클래스
</aside>
생성자