::AcceptEx docs.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex
함수원형
BOOL AcceptEx(
SOCKET sListenSocket,
SOCKET sAcceptSocket,
PVOID lpOutputBuffer,
DWORD dwReceiveDataLength,
DWORD dwLocalAddressLength,
DWORD dwRemoteAddressLength,
LPDWORD lpdwBytesReceived,
LPOVERLAPPED lpOverlapped
);
sListenSocket: 서버의 listen 설정된 소켓.
sAcceptSocket: 클라이언트로부터 들어오는 connect를 accept할 소켓. (이 소켓은 바인드와 connect가 안되어있어야함)
lpOutputBuffer: 연결에서 처음으로 전송될 데이터 블록, 서버의 로컬 주소 및 클라이언트 원격 주소를 받을 버퍼의 포인터 주소
dwReceiveDataLength: lpOutputBuffer의 바이트 수. 서버의 로컬 주소와 클라이언트 원격 주소 크기는 포함되지 않아야 하며, 0으로 설정시 연결을 수락해도 수신 작업이 실행되지 않고 AcceptEx는 연결이 도착하자마자 완료됨
dwLocalAddressLength: 로컬 주소용 바이트 수. 이 값은 사용중인 전송 프로토콜의 최대 주소 길이보다 16바이트 이상 커야함
dwRemoteAddressLength: 원격 주소용 바이트 수. 이 값은 사용중인 전송 프로토콜의 최대 주소 길이보다 16바이트 이상 커야함
lpdwBytesReceived: 받은 바이트 수를 받는 DWORD 변수의 포인터 주소. (동기적으로 완료되는 경우에만 설정되며, ERROR_IO_PENDING을 반환하고 나중에 완료되면 그 때 읽은 바이트 수를 가져와야함)
lpOverlapped: 요청을 처리하는데 사용되는 Overlapped 구조체 포인터. NULL 불가
'프로그래밍 > C,C++' 카테고리의 다른 글
[C++] Object pool (0) | 2021.06.29 |
---|---|
RTTI란? (0) | 2021.06.18 |
가상 메모리 및 Large Address Aware (0) | 2020.02.19 |
C++ 연산자 오버로딩 (0) | 2018.04.25 |
STL 커스터마이징 (0) | 2018.04.18 |