Socket.Shutdown(SocketShutdown) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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이 닫혔습니다.
예제
다음 코드 예제에서는 를 사용하여 Shutdown 를 Socket사용하지 않도록 설정합니다.
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 네트워크 추적을 참조하세요.
적용 대상
추가 정보
.NET