다음을 통해 공유


LPWSPSHUTDOWN 콜백 함수(ws2spi.h)

LPWSPShutdown 함수는 소켓에서 송신 및/또는 수신을 사용하지 않도록 설정합니다.

구문

LPWSPSHUTDOWN Lpwspshutdown;

int Lpwspshutdown(
  [in]  SOCKET s,
  [in]  int how,
  [out] LPINT lpErrno
)
{...}

매개 변수

[in] s

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

[in] how

더 이상 허용되지 않는 작업 유형을 설명하는 플래그입니다.

[out] lpErrno

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

반환 값

오류가 발생하지 않으면 LPWSPShutdown 은 0을 반환합니다. 그렇지 않으면 SOCKET_ERROR 값이 반환되고 lpErrno에서 특정 오류 코드를 사용할 수 있습니다.

오류 코드 의미
WSAENETDOWN
네트워크 하위 시스템이 실패했습니다.
WSAEINVAL
방법이 유효하지 않거나 소켓 유형과 일치하지 않습니다. 예를 들어 SD_SEND UNI_RECV 소켓 유형과 함께 사용됩니다.
WSAEINPROGRESS
콜백이 진행 중일 때 함수가 호출됩니다.
WSAENOTCONN
소켓이 연결되지 않았습니다(연결 지향 소켓만 해당).
WSAENOTSOCK
설명자가 소켓이 아닙니다.

설명

LPWSPShutdown 함수는 수신, 전송 또는 둘 다를 사용하지 않도록 설정하기 위해 모든 유형의 소켓에서 사용됩니다.

SD_RECEIVE 경우 소켓에서 후속 수신이 허용되지 않습니다. 이는 낮은 프로토콜 계층에 영향을 주지 않습니다. TCP 소켓의 경우 수신 대기 중인 소켓에 대기 중인 데이터가 여전히 있거나 이후에 데이터가 도착하는 경우 데이터를 사용자에게 전달할 수 없으므로 연결이 다시 설정됩니다. UDP 소켓의 경우 들어오는 데이터그램이 허용되고 큐에 대기됩니다. 어떤 경우에도 ICMP 오류 패킷이 생성되지 않습니다.

SD_SEND 방법인 경우 소켓의 후속 송신은 허용되지 않습니다. TCP 소켓의 경우 FIN이 전송됩니다. SD_BOTH 방법을 설정하면 위에서 설명한 대로 송신과 수신을 모두 사용하지 않도록 설정합니다.

LPWSPShutdown은 소켓을 닫지 않으며, LPWSPCloseSocket이 호출될 때까지 소켓에 연결된 리소스는 해제되지 않습니다.

참고

LPWSPShutdown 함수는 소켓의 SO_LINGER 설정에 관계없이 차단되지 않습니다. Windows 소켓 SPI 클라이언트는 소켓이 종료된 후 다시 사용할 수 있는 것에 의존해서는 안 됩니다. 특히 Windows 소켓 서비스 공급자는 이러한 소켓에서 LPWSPConnect 사용을 지원할 필요가 없습니다.

요구 사항

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

추가 정보

LPWSPConnect

LPWSPSocket