다음을 통해 공유


CAsyncSocket::Accept

소켓 연결을 수락 하려면이 멤버 함수를 호출 합니다.

virtual BOOL Accept(
   CAsyncSocket& rConnectedSocket,
   SOCKADDR* lpSockAddr = NULL,
   int* lpSockAddrLen = NULL 
);

매개 변수

  • rConnectedSocket
    연결에 사용할 수 있는 새 소켓 식별 하는 참조입니다.

  • lpSockAddr
    에 대 한 포인터는 SOCKADDR 소켓 연결의 주소를 받는 구조, 네트워크에 알려진 대로.정확한 형식에는 lpSockAddr 인수는 소켓을 만들 때 설정 된 주소 패밀리가 결정 됩니다.경우 lpSockAddr 또는 lpSockAddrLen 같지 NULL받아들인된 소켓의 원격 주소 정보가 반환 됩니다.

  • lpSockAddrLen
    주소에서 길이에 대 한 포인터 lpSockAddr (바이트)에서입니다.lpSockAddrLen 결과 값 매개 변수입니다: 처음에가 가리키는 공간의 크기를 포함 해야 lpSockAddr. 반환이 실제 길이 (바이트)를에서 반환 주소를 포함 합니다.

반환 값

함수가 성공 하면 0이 아닌. 그렇지 않으면 0이 고 특정 오류 코드를 호출 하 여 검색할 수 있는 GetLastError.다음 오류는이 멤버 함수에 적용 됩니다.

  • WSANOTINITIALISED 성공적으로 AfxSocketInit 이 API를 사용 하기 전에 발생 합니다.

  • WSAENETDOWN 는 Windows 소켓 구현이 감지 네트워크 하위 시스템 실패 합니다.

  • WSAEFAULT 의 lpSockAddrLen 인수가 너무 작습니다 (크기 보다는 SOCKADDR 구조).

  • WSAEINPROGRESS Windows 소켓 블로킹 호출이 진행 중입니다.

  • WSAEINVAL   Listen범위가 없습니다.

  • WSAEMFILE 항목에 적용 하는 큐가 비어 및 사용할 수 있는 설명자가 없습니다.

  • WSAENOBUFS버퍼 공간이 없습니다 사용할 수 있습니다.

  • WSAENOTSOCK 설명자가 소켓이 아닙니다.

  • WSAEOPNOTSUPP 참조 된 소켓 연결 지향 서비스를 지 원하는 형식을 아닙니다.

  • 아닙니다 소켓 표시 비블로킹으로 및 연결이 받아들여질 수 있습니다.

설명

이 루틴 첫 번째 연결에서 보류 중인 연결 큐의 추출이 소켓으로는 동일한 속성을 가진 새 소켓을 만듭니다 및 연결을 rConnectedSocket.대기열에 보류 중인 연결이 있으면 수락 0이 반환 및 GetLastError 오류를 반환 합니다.허용된 된 소켓 (rConnectedSocket) 더 이상 연결을 받아들이도록 사용할 수 없습니다.원래 소켓 열고 수신 대기 상태로 유지 됩니다.

인수는 lpSockAddr 통신 계층에 게 알려진 연결 소켓을 사용 하 여 주소를 입력 한 결과 매개 변수입니다.수락 소켓 연결 기반 형식과 같이 사용 SOCK_STREAM.

요구 사항

헤더: afxsock.h

참고 항목

참조

CAsyncSocket 클래스

계층 구조 차트

CAsyncSocket::Bind

CAsyncSocket::Connect

CAsyncSocket::Listen

CAsyncSocket::Create

WSAAsyncSelect