다음을 통해 공유


Socket.Shutdown(SocketShutdown) 메서드

정의

Socket에서 보내기 및 받기를 사용할 수 없도록 설정합니다.

public:
 void Shutdown(System::Net::Sockets::SocketShutdown how);
public void Shutdown (System.Net.Sockets.SocketShutdown how);
member this.Shutdown : System.Net.Sockets.SocketShutdown -> unit
Public Sub Shutdown (how As SocketShutdown)

매개 변수

how
SocketShutdown

더 이상 허용하지 않을 작업을 지정하는 SocketShutdown 값 중 하나입니다.

예외

소켓에 액세스하는 동안 오류가 발생했습니다.

Socket이 닫혔습니다.

예제

다음 코드 예제에서는 를 사용하여 ShutdownSocket사용하지 않도록 설정합니다.

try
{
   aSocket->Shutdown(SocketShutdown::Both);
   aSocket->Close();
}
catch (...)
{
   aSocket->Close();
   throw;
}

if ( aSocket->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
try
{
    aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
    aSocket.Close();
}
    Try
        aSocket.Shutdown(SocketShutdown.Both)
    Finally
        aSocket.Close()
    End Try

End Sub

설명

연결 지향 를 사용하는 경우 을 Socket닫기 Shutdown 전에 항상 메서드를 호출합니다 Socket. 이렇게 하면 모든 데이터가 닫기 전에 연결된 소켓에서 전송되고 수신됩니다.

메서드를 Close 호출하여 와 연결된 모든 관리 및 관리되지 않는 리소스를 Socket해제합니다. 닫은 후 를 Socket 다시 사용하지 마세요.

다음 표에는 매개 변수에 SocketShutdown 유효한 열거형 값이 how 나와 있습니다.

설명
Send Socket에서 전송을 사용하지 않도록 설정합니다.
Receive Socket에서 수신을 사용하지 않도록 설정합니다.
모두 Socket에서 송신 및 수신을 모두 사용하지 않도록 설정합니다.

를 로 Send 설정 how 하면 에 대한 후속 호출 Send 이 허용되지 않도록 지정합니다. 연결 없는 Socket를 사용하는 경우 를 지정해 Send 도 아무런 효과가 없습니다.

를 로 Receive 설정 how 하면 에 대한 후속 호출 Receive 이 허용되지 않도록 지정합니다. 이는 낮은 프로토콜 계층에 영향을 주지 않습니다. 연결 지향 프로토콜을 사용하는 경우 에 대한 호출 Shutdown 후 다음 조건 중 하나가 있는 경우 연결이 종료됩니다.

  • 수신 대기 중인 네트워크 버퍼에 데이터가 있습니다.

  • 더 많은 데이터가 도착했습니다.

연결 없는 프로토콜을 사용하는 경우 데이터그램이 수락되고 큐에 대기됩니다. 그러나 들어오는 추가 데이터그램에 사용할 수 있는 버퍼 공간이 없으면 삭제되고 보낸 사람에게 오류가 반환되지 않습니다. 연결 없는 Socket 경우 를 사용하지 Shutdown 않는 것이 좋습니다.

를 로 설정 how 하면 Both 위에서 설명한 대로 송신 및 수신을 모두 사용하지 않도록 설정합니다.

참고

메서드를 호출 Shutdown 할 때 를 SocketException 수신하는 경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다. 이 코드를 가져온 후 오류에 대한 자세한 설명 은 Windows 소켓 버전 2 API 오류 코드 설명서를 참조하세요.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

적용 대상

추가 정보