WSARecvDisconnect 함수(winsock2.h)
WSARecvDisconnect 함수는 소켓에서 수신을 종료하고 소켓이 연결 지향인 경우 연결 끊기 데이터를 검색합니다.
구문
int WSAAPI WSARecvDisconnect(
[in] SOCKET s,
[out] LPWSABUF lpInboundDisconnectData
);
매개 변수
[in] s
소켓을 식별하는 설명자입니다.
[out] lpInboundDisconnectData
들어오는 연결 끊기 데이터에 대한 포인터입니다.
반환 값
오류가 발생하지 않으면 WSARecvDisconnect는 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 WSAGetLastError를 호출하여 특정 오류 코드를 검색할 수 있습니다.
오류 코드 | 의미 |
---|---|
이 함수를 사용하기 전에 성공적인 WSAStartup 호출이 발생해야 합니다. | |
네트워크 하위 시스템이 실패했습니다. | |
lpInboundDisconnectData 매개 변수에서 참조하는 버퍼가 너무 작습니다. | |
연결 끊기 데이터는 표시된 프로토콜 패밀리에서 지원되지 않습니다. 연결 해제 데이터를 지원하지 않는 TCP/IP 구현은 WSAENOPROTOOPT 오류 코드를 반환할 필요가 없습니다. TCP/IP의 Microsoft 구현에 대한 자세한 내용은 설명 섹션을 참조하세요. | |
차단 Windows 소켓 1.1 호출이 진행 중이거나 서비스 공급자가 여전히 콜백 함수를 처리하고 있습니다. | |
소켓이 연결되지 않았습니다(연결 지향 소켓만 해당). | |
설명자가 소켓이 아닙니다. |
설명
WSARecvDisconnect 함수는 연결 지향 소켓에서 수신을 사용하지 않도록 설정하고 원격 당사자로부터 들어오는 연결 해제 데이터를 검색하는 데 사용됩니다. 이는 WSARecvDisconnect 에서 연결 끊기 데이터(이를 지원하는 프로토콜)를 수신할 수 있다는 점을 제외하고 종료(SD_RECEIVE)와 동일합니다.
이 함수가 성공적으로 실행되면 소켓에서 후속 수신이 허용되지 않습니다. WSARecvDisconnect를 호출해도 낮은 프로토콜 계층에는 영향을 주지 않습니다. TCP 소켓의 경우 수신 대기 중인 소켓에 여전히 데이터가 대기 중이거나 이후에 데이터가 도착하는 경우 사용자에게 데이터를 전달할 수 없으므로 연결이 다시 설정됩니다. UDP의 경우 들어오는 데이터그램이 허용되고 큐에 대기됩니다. 어떤 경우에도 ICMP 오류 패킷이 생성되지 않습니다.
WSARecvDisconnect 함수는 소켓을 닫지 않으며 closesocket이 호출될 때까지 소켓에 연결된 리소스가 해제되지 않습니다.
WSARecvDisconnect 함수는 소켓의 SO_LINGER 설정에 관계없이 차단되지 않습니다.
애플리케이션은 WSARecvDisconnect를 사용하여 연결이 끊긴 후 소켓을 다시 사용할 수 있어야 합니다. 특히 Windows 소켓 공급자는 이러한 소켓에서 연결 또는 WSAConnect 사용을 지원할 필요가 없습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winsock2.h |
라이브러리 | Ws2_32.lib |
DLL | Ws2_32.dll |