Поделиться через


Socket.Close Метод

Определение

Закрывает подключение Socket и освобождает все связанные ресурсы.

Перегрузки

Close()

Закрывает подключение Socket и освобождает все связанные ресурсы.

Close(Int32)

Закрывает подключение Socket и освобождает все связанные ресурсы с заданным временем ожидания, чтобы разрешить отправку данных в очереди.

Close()

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
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.

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

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

Примечание

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

Примечание

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

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

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

Close(Int32)

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
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.

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

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

Примечание

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

Примечание

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

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

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