Socket.Shutdown(SocketShutdown) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.