AcceptEx
[공유] [확장윈속 API] AcceptEx ![]() ![]()
|
1. BOOL AcceptEx(
SOCKET sListenSocket, // listen socket
SOCKET sAcceptSocket, // accept socket(생성되있어야함, not connect,
not bind...)
PVOID lpOutputBuffer, // client가 연결되자마자 수신되는 데이터 버퍼
DWORD dwReceiveDataLength, // lpOutputBuffer의 크기 : 로컬과 리모트 어드레스 크기
는 제외), 받을필요없으면 0
DWORD dwLocalAddressLength, // sAcceptSocket으로 연결되는 로컬어드레스의 크기
(사이즈 : 사용한 주소 구조체+16)
DWORD dwRemoteAddressLength, // sAcceptSocket으로 연결되는 리모트어드레스의크기
(사이즈 : 사용한 주속 구조체+16)
LPDWORD lpdwBytesReceived, // 연결되자마자 받은 데이터의 크기
LPOVERLAPPED lpOverlapped // overlapped I/O를 수행할 WSAOVERLAPPED구조체
의 포인터, NULL이 될 수 없다
);
-> 서버가 클라이언트의 연결을 받아들일 때 비동기 호출로 동작하게 하여 다른 클라이언트의 연결을 즉시 받아들일 수 있도록 한다. 즉 accpet의 동작을 넌블럭킹 상태로 처리할 수 있게 해주는 함수이다. 순간적인 동시접속자가 많을 경우에 효율적으로 보인다
참고 : 정보문화사 NETWORK PROGRAMMING FOR MS WINDOWS II