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등록이 어떻게 가능한지를 잘모르겠습니다
아 acceptEx에 대한 이해가 부족했었습니다
accept랑 동일하게 등록이 성공후 클라이언트에 대한 소켓을 반환하는 것 인줄 알았는데
acceptex는 미리 소켓에 대한 정보를 넘겨서 연결 성공 후 소켓에 등록하는 방식이어서 상관없음을 알게되었습니다
감사합니다.