인프런 커뮤니티 질문&답변

가나파이님의 프로필 이미지
가나파이

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

Overlapped 모델 (이벤트 기반)

WSAWaitForMultipleEvents 에 대해 약간 궁금한 것이 있습니다.

해결된 질문

작성

·

532

1

조금 이해를 못한 부분이 있습니다. while문을 돌면서 WSAWaitForMultipleEvents에 도달했을 때  timeout 조건을 WSA_INFINITE로 걸게 되면 이 지점에서 block되는 것과 같아지나요?  그러면 비동기 논블락 소켓을 사용하는 이점이 사라지게 되는 것인지 문득 궁금해졌습니다.

더불어서 혹시 취업 특강은 다음 주에 나오는걸까요..? ㅎㅎ

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

말씀대로 1개 쓰레드만 운영하고 거기서 WSA_INFINITE를 바로 wait을 박아버리면
블로킹 소켓과 비슷한 코드 흐름이 되긴 합니다.
실제로 그래서 IOCP 등 더 우월한 방법을 사용하게 됩니다.

하지만 약간의 차이가 있다면
1) wait하는 시점을 우리가 정할 수 있고
2) infinite가 아닌 값을 사용하면 딱 원하는 시간만큼을 기다릴 수 있고
3) 입출력 함수를 여러개 걸어놓고 모아서 wait를 한다거나
기타 등등 여러가지 추가 선택지로 인한 장점이 있긴 합니다.

그런데 어차피 overlapped는 iocp를 학습하기 위한
기초 정도에 불과해서, 큰 의미를 둘 필욘 없습니다.

그리고 취업 특강 강의는 지난주에 제출해서
(아마도?) 다음 주 정도에 오픈될 것 같습니다.
보통 강의를 제출하면, 인프런 에디터 분들께서
강의 대표 아이콘도 만들어주시고, 소개 페이지 정리도 해주시고 ,
이런 저런 꾸미는 작업을 해주시는데
비슷한 기간에 너무 강의 제출이 밀리면, 조금 늦어지는 경우도 있습니다.

가나파이님의 프로필 이미지
가나파이
질문자

답변 정말 감사드립니다. 살짝 이해가 안됐던 부분이 풀렸네요.  늘 자세한 답변을 해주셔서 감사드립니다. 

가나파이님의 프로필 이미지
가나파이

작성한 질문수

질문하기