Completion Port 오브젝트와 소켓의 연결
Posted 2012. 8. 13. 22:48생성했다면 오브젝트에 연결해야됨..그래야 완료된 소켓의 IO정보가 CP오브젝트에 등록된다.
생성과 연결 함수
HANDLE CreateIoCompletionPort(
HANDLE FileHandle,
HANDLE ExistingCompletionPort,
ULONG_PTR CompletionKey,
DWORD NumberOfConcurrentThreads
);
이번은 연결시점으로 설명)
HANDLE FileHandle // CP오브젝트에 연결할 소켓의 핸들 전달
HANDLE ExistingCompletionPort, // 소켓과 연결할 CP오브젝트의 핸들 전달
ULONG_PTR CompletionKey, //완료된 IO관련 정보의 전달을 위한 매개변수. 이는 GetQueuedCompletionStatus함수와 함꼐이해해야됨
DWORD NumberOfConcurrentThreads // 어떠한 값을 전달하건 이 함수의 두번째 매개변수가 NULL이아니면 그냥 무시됨.
ex)
HANDLE hCpObject;
SOCKET hSock;
........
CreateIoCompletionPort( (HANDLE)hSock, hCpObject, (DWORD)ioInfo, 0 );
이렇게 Crea......함수가 호출된 이후부터는 hSock를 대상으로 진행된 IO가 완료되면 이에대한 정보가 핸들 hCpObject에 해당하는 CP오브젝트에 등록된다.
'Server > IOCP' 카테고리의 다른 글
GetQueuedCompletionStatus() 함수 (0) | 2012.08.13 |
---|---|
Completion Port의 생성 (0) | 2012.08.13 |
IOCP (0) | 2012.08.13 |
- Filed under : Server/IOCP