4-12 다중 입출력 (과제)

do·2022년 6월 30일
0

API

목록 보기
41/42

4-12 다중입출력
epoll_tcp_server.c
Q. 왜 Timewait가 생길 수 밖에 없는 구조인지?
A. close()로 소멸시켜도 클라이언트와 미처리된 전문을 마저 처리하기 위해 커널에서 2~3분간 유지되는데 이를 TIME_WAIT상태라고 표현한다. TIME_WAIT 상태가 늘어나면 서버의 소켓이 고갈되어 커넥션 타임아웃이 발생한다.
클라이언트와 서버 서로 확인하고 close() 해야함

Q. 클라이언트가 ctrl+c로 종료하면 서버가 어떻게 되는지?
A. 무한반복됨..

epoll_tcp_client.c
Q. 파일 경로 다 인자로 받기

INADDR_ANY: 소켓을 특정 IP주소에 바인드 하지 않아도 될때 사용됨. 사용하면 소켓이 모든 IP주소에 연결을 수락한다.
SO_REUSEADDR: 소켓이 다른 소켓에서 사용 중인 포트에 강제로 바인딩 할 수 있다.

0개의 댓글