다음을 통해 공유


LPWSPENUMNETWORKEVENTS 콜백 함수(ws2spi.h)

LPWSPEnumNetworkEvents 함수는 표시된 소켓에 대한 네트워크 이벤트의 발생을 보고합니다.

구문

LPWSPENUMNETWORKEVENTS Lpwspenumnetworkevents;

int Lpwspenumnetworkevents(
  [in]  SOCKET s,
  [in]  WSAEVENT hEventObject,
  [out] LPWSANETWORKEVENTS lpNetworkEvents,
  [out] LPINT lpErrno
)
{...}

매개 변수

[in] s

소켓을 식별하는 설명자입니다.

[in] hEventObject

다시 설정할 연결된 이벤트 개체를 식별하는 선택적 핸들입니다.

[out] lpNetworkEvents

발생한 네트워크 이벤트 및 관련된 오류 코드의 레코드로 채워진 WSANETWORKEVENTS 구조체에 대한 포인터입니다. WSANETWORKEVENTS 구조체는 다음 텍스트에 정의되어 있습니다.

[out] lpErrno

오류 코드에 대한 포인터입니다.

반환 값

작업이 성공한 경우 반환 값은 0입니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 lpErrno에서 특정 오류 번호를 사용할 수 있습니다.

오류 코드 의미
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.
WSAEINVAL
지정된 매개 변수 중 하나가 잘못되었음을 나타냅니다.
WSAEINPROGRESS
차단 Windows 소켓 호출이 진행 중이거나 서비스 공급자가 여전히 콜백 함수를 처리하고 있습니다.
WSAENOTSOCK
설명자가 소켓이 아닙니다.

설명

이 함수는 이 함수의 마지막 호출 이후 표시된 소켓에 대해 발생한 네트워크 이벤트를 보고하는 데 사용됩니다. 이벤트 개체를 하나 이상의 네트워크 이벤트와 연결하는 LPWSPEventSelectLPWSPAsyncSelect와 함께 사용하기 위한 것입니다. 네트워크 이벤트 기록은 LPWSPEventSelect 또는 LPWSPAsyncSelect가 0이 아닌 lNetworkEvents 인수로 호출될 때 시작되며 lNetworkEvents 인수가 0으로 설정된 LPWSPEventSelect 또는 LPWSPAsyncSelect에 대한 다른 해당 호출이 수행될 때까지 계속 적용됩니다.

LPWSPEnumNetworkEvents는LPWSPEventSelect를 통해 지명된 네트워크 활동 및 오류만 보고합니다. 해당 함수가 네트워크 활동 및 오류를 보고하는 방법을 알아보려면 LPWSPSelect 및 LPWSPAsyncSelect에 대한 설명을 참조하세요.

소켓의 네트워크 이벤트 내부 레코드는 lpNetworkEvents에서 참조하는 구조로 복사되며, 그 후에는 내부 네트워크 이벤트 레코드가 지워집니다. hEventObject가 null이 아닌 경우 표시된 이벤트 개체도 다시 설정됩니다. Windows Sockets 공급자는 네트워크 이벤트 레코드를 복사하고, 삭제하고, 연결된 이벤트 개체를 다시 설정하는 작업이 원자성임을 보장하므로, 다음에 지정된 네트워크 이벤트가 발생하면 이벤트 개체가 설정됩니다. SOCKET_ERROR 반환하는 이 함수의 경우 연결된 이벤트 개체가 다시 설정되지 않고 네트워크 이벤트 레코드가 지워지지 않습니다.

WSANETWORKEVENTS 구조체는 WSANETWORKEVENTS 참조 페이지에 정의되어 있습니다.

WSANETWORKEVENTS 구조체의 lNetworkEvents 멤버는 FD_XXX 네트워크 이벤트가 발생한 것을 나타냅니다. iErrorCode 배열은 lNetworkEvents의 이벤트 비트 위치에 해당하는 배열 인덱스와 함께 연결된 오류 코드를 포함하는 데 사용됩니다. FD_READ_BIT 및 FD_WRITE_BIT 같은 식별자를 사용하여 iErrorCode 배열을 인덱싱할 수 있습니다.

iErrorCode 배열의 해당 요소만 lNetworkEvents 멤버에 설정된 비트에 해당하도록 설정됩니다. 다른 멤버는 수정되지 않습니다(새 FD_ROUTING_INTERFACE_CHANGE 및 FD_ADDRESS_LIST_CHANGE 이벤트를 인식하지 못하는 Windows Socket 2 SPI 클라이언트와의 이전 버전과의 호환성을 위해 중요합니다).

다음 오류 코드는 해당 네트워크 이벤트와 함께 반환될 수 있습니다.

이벤트: FD_CONNECT

오류 코드 의미
WSAEAFNOSUPPORT
지정된 패밀리의 주소는 이 소켓에서 사용할 수 없습니다.
WSAECONNREFUSED
연결 시도가 강제로 거부되었습니다.
WSAENETUNREACH
현재 이 호스트에서 네트워크에 연결할 수 없습니다.
WSAENOBUFS
사용할 수 있는 버퍼 공간이 없습니다. 소켓을 연결할 수 없습니다.
WSAETIMEDOUT
연결을 설정하지 않고 연결 시도가 시간 초과되었습니다.

이벤트: FD_CLOSE

오류 코드 의미
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.
WSAECONNRESET
원격 쪽에서 연결을 다시 설정했습니다.
WSAECONNABORTED
제한 시간 또는 기타 오류로 인해 연결이 종료되었습니다.

이벤트: FD_READ, FD_WRITE, FD_OOB, FD_ACCEPT, FD_QOS, FD_GROUP_QOS, FD_ADDRESS_LIST_CHANGE

오류 코드 의미
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.

이벤트: FD_ROUTING_INTERFACE_CHANGE

오류 코드 의미
WSAENETUNREACH
지정된 대상에 더 이상 연결할 수 없습니다.
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 ws2spi.h

추가 정보

LPWSPEventSelect