반응형
IOCP OVERLAPPED사용할 경우 랜덤적으로 WSARecv 또는 WSASend 동작시 Error Code 6 일 발생하는 경우가 있다.
이것은 Overlapped 구조체의 hEvent 변수를 초기화하지 않고 사용해서 발생하는 것으로 해당 변수를 NULL 로 초기화해서 사용할 경우 발생하지 않는다.
아래의 경우에는 내가 사용했던 경우이다. 나중에 혹시 다시 발생하면 참고할 수 있도록 하자.
class CROverlapped : public OVERLAPPED, public CRObject
{
public:
E_TYPE_OVERLLAPED eType;
std::shared_ptr< CClientInfo> m_ClntInfo;
CROverlapped() { m_ClntInfo = nullptr;
hEvent = NULL;
}
CSocketHandle* m_Socket;
};
위 클래스는 OVERLAPPED 를 상속받았고 내부에서 hEvent 변수를 초기화하고 있는 것을 볼 수 있다.
반응형
'프로그래밍 > MFC/WIN32' 카테고리의 다른 글
MFC 에서 마우스 클릭을 비활성화 하는 방법 (0) | 2022.03.17 |
---|---|
Visual studio 디버그 빌드 배포시 종속 DLL 위치 (0) | 2021.12.29 |
MFC 현재 윈도우 폰트 속성 (0) | 2021.12.28 |
MFC 다이얼로그(Dialog) 스크롤(Scroll) 적용 (0) | 2021.12.28 |