Partager via


Socket.Shutdown(SocketShutdown) Méthode

Définition

Désactive les envois et les réceptions sur un 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)

Paramètres

how
SocketShutdown

Une des valeurs de SocketShutdown spécifiant l'opération qui ne sera plus autorisée.

Exceptions

Une erreur s’est produite pendant la tentative d’accès au socket.

Exemples

L’exemple de code suivant utilise Shutdown pour désactiver .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

Remarques

Lors de l’utilisation d’une méthode orientée Socketconnexion , appelez toujours la Shutdown méthode avant de fermer le Socket. Cela garantit que toutes les données sont envoyées et reçues sur le socket connecté avant sa fermeture.

Appelez la Close méthode pour libérer toutes les ressources managées et non managées associées à .Socket N’essayez pas de réutiliser le Socket après la fermeture.

Le tableau suivant montre les valeurs d’énumération SocketShutdown qui sont valides pour le how paramètre.

Value Description
Envoyer Désactivez l’envoi sur ce Socket.
Recevoir Désactivez la réception sur ce Socket.
Les deux Désactivez l’envoi et la réception sur ce Socket.

La définition how de sur Send spécifie que les appels suivants à Send ne sont pas autorisés. Si vous utilisez un sans connexion Socket, la spécification n’aura Send aucun effet.

La définition how de sur Receive spécifie que les appels suivants à Receive ne sont pas autorisés. Cela n’a aucun effet sur les couches de protocole inférieures. Si vous utilisez un protocole orienté connexion, la connexion est arrêtée si l’une des conditions suivantes existe après un appel à Shutdown :

  • Les données se situent dans la mémoire tampon réseau entrante en attente d’être reçues.

  • D’autres données sont arrivées.

Si vous utilisez un protocole sans connexion, les datagrammes sont acceptés et mis en file d’attente. Toutefois, si aucun espace tampon n’est disponible pour les datagrammes entrants supplémentaires, ils seront ignorés et aucune erreur ne sera retournée à l’expéditeur. L’utilisation Shutdown sur un sans Socket connexion n’est pas recommandée.

La définition how de sur Both désactive à la fois les envois et les réceptions comme décrit ci-dessus.

Notes

Si vous recevez un lors de SocketException l’appel de la Shutdown méthode, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois ce code obtenu, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.

S’applique à

Voir aussi