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.