해결된 질문
작성
·
532
1
조금 이해를 못한 부분이 있습니다. while문을 돌면서 WSAWaitForMultipleEvents에 도달했을 때 timeout 조건을 WSA_INFINITE로 걸게 되면 이 지점에서 block되는 것과 같아지나요? 그러면 비동기 논블락 소켓을 사용하는 이점이 사라지게 되는 것인지 문득 궁금해졌습니다.
더불어서 혹시 취업 특강은 다음 주에 나오는걸까요..? ㅎㅎ
답변 1
1
말씀대로 1개 쓰레드만 운영하고 거기서 WSA_INFINITE를 바로 wait을 박아버리면
블로킹 소켓과 비슷한 코드 흐름이 되긴 합니다.
실제로 그래서 IOCP 등 더 우월한 방법을 사용하게 됩니다.
하지만 약간의 차이가 있다면
1) wait하는 시점을 우리가 정할 수 있고
2) infinite가 아닌 값을 사용하면 딱 원하는 시간만큼을 기다릴 수 있고
3) 입출력 함수를 여러개 걸어놓고 모아서 wait를 한다거나
기타 등등 여러가지 추가 선택지로 인한 장점이 있긴 합니다.
그런데 어차피 overlapped는 iocp를 학습하기 위한
기초 정도에 불과해서, 큰 의미를 둘 필욘 없습니다.
그리고 취업 특강 강의는 지난주에 제출해서
(아마도?) 다음 주 정도에 오픈될 것 같습니다.
보통 강의를 제출하면, 인프런 에디터 분들께서
강의 대표 아이콘도 만들어주시고, 소개 페이지 정리도 해주시고 ,
이런 저런 꾸미는 작업을 해주시는데
비슷한 기간에 너무 강의 제출이 밀리면, 조금 늦어지는 경우도 있습니다.
답변 정말 감사드립니다. 살짝 이해가 안됐던 부분이 풀렸네요. 늘 자세한 답변을 해주셔서 감사드립니다.