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


Socket.Shutdown(SocketShutdown) Метод

Определение

Отключает отправку и получение в объекте Socket.

public:
 void Shutdown(System::Net::Sockets::SocketShutdown how);
public void Shutdown(System.Net.Sockets.SocketShutdown how);
member this.Shutdown : System.Net.Sockets.SocketShutdown -> unit
Public Sub Shutdown (how As SocketShutdown)

Параметры

how
SocketShutdown

Одно из SocketShutdown значений, указывающее операцию, которая больше не будет разрешена.

Исключения

Произошла ошибка при попытке доступа к сокету.

Он Socket был закрыт.

Примеры

В следующем примере кода используется Shutdown для отключения Socket.

try
{
    aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
    aSocket.Close();
}
    Try
        aSocket.Shutdown(SocketShutdown.Both)
    Finally
        aSocket.Close()
    End Try

End Sub

Комментарии

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

Close Вызовите метод для освобождения всех управляемых и неуправляемых ресурсов, связанных с нимSocket. Не пытайтесь повторно использовать Socket после закрытия.

В следующей таблице показаны SocketShutdown значения перечисления, допустимые для how параметра.

Ценность Описание
Отправка Отключите отправку по этому Socketпараметру.
Получать Отключите получение для этого Socket.
Both Отключите отправку и получение для этого Socket.

Параметр, how указывающий Send , что последующие вызовы Send не допускаются. Если вы используете бессерверное Socketподключение, указание Send не будет иметь никакого эффекта.

Параметр, how указывающий Receive , что последующие вызовы Receive не допускаются. Это не влияет на более низкие уровни протокола. Если вы используете протокол, ориентированный на подключение, подключение завершается, если одно из следующих условий существует после вызова Shutdown :

  • Данные помещаются в входящий сетевой буфер, ожидающий получения.

  • Больше данных поступило.

Если вы используете протокол без подключения, то прием и очередь диаграммы данных принимаются и помещаются в очередь. Однако если буферное пространство недоступно для дополнительных входящих данных, они будут удалены, и ошибка не будет возвращена отправителю. Использование Shutdown без Socket подключения не рекомендуется.

Параметр how отключения Both отправки и получения, как описано выше.

Замечание

SocketException При вызове Shutdown метода используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.

Замечание

Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.

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

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