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 метода. Это гарантирует, что все данные отправляются и получаются на подключенном сокете до закрытия.

Если вам нужно вызвать Close без первого вызова Shutdown, вы можете убедиться, что данные, помещенные в очередь для исходящей передачи, будут отправлены, задав DontLingerSocket параметр и false указав интервал времени ожидания, отличный от нуля. Close затем блокируется до отправки этих данных или до истечения указанного времени ожидания. Если задано DontLinger false значение и задан нулевой интервал времени ожидания, Close выпустите подключение и автоматически отбрасывает исходящие данные в очереди.

Примечание

Чтобы задать параметр сокетаDontLinger, создайтеLingerOption, задайте для свойства включено значение trueи задайте LingerTime для свойства нужный период времени ожидания.false Используйте его LingerOption вместе с параметром сокета SetSocketOption DontLinger для вызова метода.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в разделе "Трассировка сети" в платформа .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.

Для протоколов, ориентированных на подключение, рекомендуется вызывать Shutdown перед вызовом Close. Это гарантирует, что все данные отправляются и получаются на подключенном сокете до закрытия.

Если вам нужно вызвать Close без первого вызова Shutdown, вы можете убедиться, что данные, помещенные в очередь для исходящей передачи, будут отправлены, задав DontLinger параметр и false указав интервал времени ожидания, отличный от нуля. Close затем блокируется до отправки этих данных или до истечения указанного времени ожидания. Если задано DontLinger false значение и задан нулевой интервал времени ожидания, Close выпустите подключение и автоматически отбрасывает исходящие данные в очереди.

Примечание

Чтобы задать параметр сокетаDontLinger, создайтеLingerOption, задайте для свойства включено значение trueи задайте LingerTime для свойства требуемый период времени ожидания.false Используйте его LingerOption вместе с параметром сокета SetSocketOption DontLinger для вызова метода.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в разделе "Трассировка сети" в платформа .NET Framework.

См. также раздел

Применяется к