Socket.Close 메서드

정의

Socket 연결을 닫고 연결된 리소스를 모두 해제합니다.

오버로드

Close()

Socket 연결을 닫고 연결된 리소스를 모두 해제합니다.

Close(Int32)

Socket 연결을 닫고 지정된 시간 제한의 모든 관련 리소스를 해제하여 대기 중인 데이터가 전송될 수 있도록 합니다.

Close()

Socket 연결을 닫고 연결된 리소스를 모두 해제합니다.

public:
 void Close();
public void Close ();
member this.Close : unit -> unit
Public Sub Close ()

예제

다음 코드 예제에서는 을 닫습니다.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

설명

이 메서드는 Close 원격 호스트 연결을 닫고 연결된 관리 및 관리되지 않는 모든 리소스를 Socket해제합니다. 닫을 때 속성이 Connected .로 false설정됩니다.

연결 지향 프로토콜의 경우 메서드를 호출하기 전에 호출 Shutdown 하는 Close 것이 좋습니다. 이렇게 하면 모든 데이터가 닫기 전에 연결된 소켓에서 전송되고 수신됩니다.

먼저 호출Shutdown하지 않고 호출 Close 해야 하는 경우 옵션을 설정하고 DontLingerSocket 0이 아닌 시간 제한 간격을 지정하여 나가는 전송을 위해 대기 중인 데이터를 전송하도록 false 할 수 있습니다. Close 그러면 이 데이터가 전송되거나 지정된 제한 시간이 만료될 때까지 차단됩니다. 제한 시간 간격 Close 을 0으로 false 설정하고 DontLinger 지정하면 연결을 해제하고 나가는 큐에 대기된 데이터를 자동으로 삭제합니다.

참고

소켓 옵션을 설정 DontLinger 하려면 활성화된 속성을 true만들고 LingerOption원하는 제한 시간으로 설정합니다LingerTime.false 소켓 옵션과 함께 DontLingerLingerOption 옵션을 사용하여 메서드를 호출합니다SetSocketOption.

참고

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

추가 정보

적용 대상

Close(Int32)

Socket 연결을 닫고 지정된 시간 제한의 모든 관련 리소스를 해제하여 대기 중인 데이터가 전송될 수 있도록 합니다.

public:
 void Close(int timeout);
public void Close (int timeout);
member this.Close : int -> unit
Public Sub Close (timeout As Integer)

매개 변수

timeout
Int32

남은 데이터를 보내려면 timeout 최대 밀리초 정도 기다린 다음 소켓을 닫습니다.

예제

다음 코드 예제에서는 을 닫는 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

설명

이 메서드는 Close 원격 호스트 연결을 닫고 연결된 관리 및 관리되지 않는 모든 리소스를 Socket해제합니다. 닫을 때 속성이 Connected .로 false설정됩니다.

연결 지향 프로토콜의 경우 호출Close하기 전에 호출 Shutdown 하는 것이 좋습니다. 이렇게 하면 모든 데이터가 닫기 전에 연결된 소켓에서 전송되고 수신됩니다.

먼저 호출Shutdown하지 않고 호출 Close 해야 하는 경우 옵션을 설정하고 DontLinger 0이 아닌 시간 제한 간격을 지정하여 나가는 전송을 위해 대기 중인 데이터를 전송하도록 false 할 수 있습니다. Close 그러면 이 데이터가 전송되거나 지정된 제한 시간이 만료될 때까지 차단됩니다. 제한 시간 간격 Close 을 0으로 false 설정하고 DontLinger 지정하면 연결을 해제하고 나가는 큐에 대기된 데이터를 자동으로 삭제합니다.

참고

소켓 옵션을 설정 DontLinger 하려면 활성화된 속성을 true만들고 LingerOption원하는 시간 제한 기간으로 설정합니다LingerTime.false 소켓 옵션과 함께 DontLingerLingerOption 옵션을 사용하여 메서드를 호출합니다SetSocketOption.

참고

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

추가 정보

적용 대상