인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

민규이님의 프로필 이미지
민규이

작성한 질문수

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

Session #1

CreateSession 질문드립니다

작성

·

438

0

SessionRef session = _service->CreateSession()
 
SessionRef Service::CreateSession() { SessionRef session = _sessionFactory(); session->SetService(shared_from_this()); if (_iocpCore->Register(session) == false) return nullptr; return session; }
 
iocpcore->Register로 가게되는데
 
AcceptEx 진행전이여서 Socket등록이 되어 있지 않을텐데
 
bool IocpCore::Register(IocpObjectRef iocpObject)
{
return ::CreateIoCompletionPort(iocpObject->GetHandle(), _iocpHandle, /*key*/0, 0);
}
를통해서 IOCP등록이 어떻게 가능한지를 잘모르겠습니다

답변 1

0

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

https://docs.microsoft.com/ko-kr/windows/win32/fileio/createiocompletionport

MSDN 공식 문서의 함수 관련 설명을 읽어보시면 도움이 됩니다.

민규이님의 프로필 이미지
민규이
질문자

아 acceptEx에 대한 이해가 부족했었습니다

accept랑 동일하게 등록이 성공후 클라이언트에 대한 소켓을 반환하는 것 인줄 알았는데

acceptex는 미리 소켓에 대한 정보를 넘겨서 연결 성공 후 소켓에 등록하는 방식이어서 상관없음을 알게되었습니다 

감사합니다.

민규이님의 프로필 이미지
민규이

작성한 질문수

질문하기