404-DriverNotFound / 200-OK

jikang, yunslee, ykoh project for Pass this project
2 stars 1 forks source link

Fix: timeout 이후 연결가능 #26

Closed PennyBlack2008 closed 3 years ago

PennyBlack2008 commented 3 years ago

WHAT?

select 함수에서 timeout 시에 readfds 값이 수정된다. 그래서 select 함수가 적용된 반복 loop 의 초반에 cpy_readfds 를 선언하여 readfds 의 복사본으로 만든 후, cpy_readfdsselect 함수에 적용시킨다.

WHY?

select 함수에서 왜 내부적으로 이렇게 작동하는 지는 잘 모르겠으나 readfds 가 timeout 이후에 변경된다. 그래서 복사본을 만들어 select 함수에 적용시켰음.

TESTING

이 testcase 를 확인하려면, 실행파일을 실행시킨 후, 5초 뒤에 timeout 메시지가 나오고 접속을 시도해보면 된다.

ISSUE and REFERENCE

덧붙이고 싶은 말

이제 서버 소켓이 여러개 생기고 client socket 에서도 정보를 주고 받게 된다면, select 함수에 필요한 원본 readfds 와 복사본 readfs, FD_SET, FD_CLR, FD_ISSET 을 사용하여 적절히 조작하는 것이 필요할 것임. 아직 공부와 테스트 경험이 부족해서 하고 있는 중임.

exgs commented 3 years ago

나이거 봐볼꺼라 ㄱㄷ 클러스터에서 볼꺼임