프로그래밍/C,C++

비동기 함수 정리

MAKGA 2021. 3. 22. 21:59
320x100

::AcceptEx docs.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex

 

AcceptEx function (mswsock.h) - Win32 apps

Accepts a new connection, returns the local and remote address, and receives the first block of data sent by the client application. Note  This function is a Microsoft-specific extension to the Windows Sockets specification. .

docs.microsoft.com

함수원형

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 불가

320x100

'프로그래밍 > 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