Comparteix a través de


Socket.Shutdown(SocketShutdown) Método

Definición

Deshabilita los envíos y recepciones en un objeto 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)

Parámetros

how
SocketShutdown

Uno de los valores de SocketShutdown que especifica la operación que ya no estará permitida.

Excepciones

Error al intentar acceder al socket.

El Socket se ha cerrado.

Ejemplos

En el ejemplo de código siguiente se usa Shutdown para deshabilitar .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

Comentarios

Cuando se usa un elemento orientado Socketa la conexión, llame siempre al Shutdown método antes de cerrar .Socket Esto garantiza que todos los datos se envíen y reciban en el socket conectado antes de cerrarlos.

Llame al Close método para liberar todos los recursos administrados y no administrados asociados a Socket. No intente volver a usar después del Socket cierre.

En la tabla siguiente se muestran los SocketShutdown valores de enumeración que son válidos para el how parámetro .

Valor Descripción
Envío Deshabilite el envío en este Socket.
Recepción Deshabilite la recepción en este Socket.
Ambos Deshabilite tanto el envío como la recepción en este .Socket

Al establecer how en Send se especifica que no se permiten llamadas posteriores a Send . Si usa un sin Socketconexión, especificar Send no tendrá ningún efecto.

Al establecer how en Receive se especifica que no se permiten llamadas posteriores a Receive . Esto no tiene ningún efecto en las capas de protocolo inferior. Si usa un protocolo orientado a la conexión, la conexión finaliza si alguna de las condiciones siguientes existe después de una llamada a Shutdown :

  • Los datos están en el búfer de red entrante en espera de recibirse.

  • Han llegado más datos.

Si usa un protocolo sin conexión, se aceptan y ponen en cola los datagramas. Sin embargo, si no hay espacio de búfer disponible para datagramas entrantes adicionales, se descartarán y no se devolverá ningún error al remitente. No se recomienda usar Shutdown en un sin Socket conexión.

Al establecer how en , Both se deshabilitan tanto los envíos como los recibe, tal y como se ha descrito anteriormente.

Nota

Si recibe un elemento SocketException al llamar al Shutdown método , use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, vea Seguimiento de red en .NET Framework.

Se aplica a

Consulte también