TCPIP Socket Programming 22 Completion Port Network Lab
TCP/IP Socket Programming… 제 22장 Completion Port 입·출력 모델 Network Lab. Yong bae, Kim HANNAM Univ.
TCP/IP Socket Programming… Network Lab. 목차 q Completion Port 입·출력 기본 원리 q Completion Port 입·출력을 위한 기본 단계 q Completion Port 입·출력 기반의 서버 구현 HANNAM Univ. 2
TCP/IP Socket Programming… Network Lab. 구현 C 1 소켓 Completion Port 오 브젝트 생성함수 연결 C 2 소켓 연결 연결 Completion Port 소켓 Thread Completion Queue에 삽입 c. p C 3 확인 확인에 필요한 함수 Completion Queue 소켓과의 연결함수. HANNAM Univ. 3
TCP/IP Socket Programming… Network Lab. Create. Io. Completion. Port 함수 q Completion Port 오브젝트 생성 HANDLE Create. Io. Completion. Port ( HANDLE File. Handle, HANDLE Existing. Completion. Port, // 연결 시킬 소켓 핸들 // 연결 시킬 completion port 핸들 ULONG_PTR Completion. Key, // completion key DWORD Number. Of. Concurrent. Threads // 동시 실행 가능한 쓰레드의 수 ); 만약에 0을 전달 할 경 우 CPU의 수만큼 허용 한다. HANNAM Univ. 5
TCP/IP Socket Programming… Network Lab. Create. Io. Completion. Port 함수 q Overlapped 소켓과 Completion Port의 연결 HANDLE Create. Io. Completion. Port ( HANDLE File. Handle, // 연결 시킬 소켓 핸들 HANDLE Existing. Completion. Port, // 연결 시킬 completion port 핸들 ULONG_PTR Completion. Key, // completion key DWORD Number. Of. Concurrent. Threads // 동시 실행 가능한 쓰레드의 수 ); Completion Packet 에 저장되는 Data HANNAM Univ. 7
TCP/IP Socket Programming… Network Lab. Get. Queued. Completion. Status 함수 q Completion Queue에 들어 있는 패킷 정보 확인 BOOL Get. Queued. Completion. Status( HANDLE Completion. Port, // handle to completion port LPDWORD lp. Number. Of. Bytes, // bytes transferred PULONG_PTR lp. Completion. Key, // file completion key LPOVERLAPPED *lp. Overlapped, // buffer DWORD dw. Milliseconds // optional timeout value ); HANNAM Univ. 8
TCP/IP Socket Programming… Network Lab. Create. Io. Completion. Port : key [그림 22 -1] 함수 호출과 전달 인자의 관계 HANNAM Univ. 9
TCP/IP Socket Programming… Network Lab. WSARecv : overlapped [그림 22 -2] 구조체의 포인터 관계 HANNAM Univ. 10
TCP/IP Socket Programming… Network Lab. 참고문헌 q “데이터 통신과 네트워킹”, 이재광 외 2명, 교보 문고 q “TCP/IP 프로토콜”, 이재광외 5명, 미래컴 q “Linux Socket Programming by Example”, Warren W. Gay, QUE '00 HANNAM Univ. 11
TCP/IP Socket Programming… Network Lab. Q&A HANNAM Univ. 12
- Slides: 12