Socket.Close 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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해제합니다. 닫으면 속성이 Connected 로 false
설정됩니다.
연결 지향 프로토콜의 경우 메서드를 호출하기 전에 를 호출 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해제합니다. 닫으면 속성이 Connected 로 false
설정됩니다.
연결 지향 프로토콜의 경우 를 호출하기 전에 를 호출 ShutdownClose하는 것이 좋습니다. 이렇게 하면 모든 데이터가 닫기 전에 연결된 소켓에서 전송되고 수신됩니다.
를 먼저 호출하지 않고 를 호출 CloseShutdown해야 하는 경우 옵션을 false
로 설정하고 DontLinger 0이 아닌 시간 제한 간격을 지정하여 나가는 전송을 위해 대기 중인 데이터를 보낼 수 있습니다.
Close 그러면 이 데이터가 전송될 때까지 또는 지정된 제한 시간이 만료될 때까지 차단됩니다. 를 로 false
설정하고 DontLinger 시간 제한 간격 Close 을 0으로 지정하면 연결이 해제되고 나가는 큐에 대기된 데이터가 자동으로 삭제됩니다.
참고
소켓 옵션을 로 설정 DontLinger 하려면 를 만들고 LingerOption사용 속성을 로 true
설정하고 속성을 원하는 제한 시간으로 설정합니다LingerTime.false
LingerOption 이 옵션을 소켓 옵션과 함께 DontLinger 사용하여 메서드를 호출합니다SetSocketOption.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.
추가 정보
적용 대상
.NET