다음을 통해 공유


Socket.Close 메서드

정의

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

오버로드

Close()

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

Close(Int32)

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

Close()

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

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해제합니다. 닫으면 속성이 Connectedfalse설정됩니다.

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

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

참고

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

참고

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

추가 정보

적용 대상

Close(Int32)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

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해제합니다. 닫으면 속성이 Connectedfalse설정됩니다.

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

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

참고

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

참고

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

추가 정보

적용 대상