Freigeben über


CAsyncSocket::ShutDown

Rufen Sie die Memberfunktion auf, um zu deaktivieren sendet, empfängt oder beide auf dem Socket.

BOOL ShutDown( 
   int nHow = sends  
);

Parameter

  • nHow
    Ein Flag, das beschreibt, welche Typen der Operation nicht mehr zulässig sind, mithilfe der folgenden Enumerationswerte:

    • empfängt = 0

    • sendet = 1

    • beide = 2

Rückgabewert

Ungleich 0 (null), wenn die Funktion erfolgreich; andernfalls 0 und ein bestimmter Fehlercode können abgerufen werden, indem Sie GetLastError aufruft. Die folgenden Fehler gelten für diese Memberfunktion zu:

  • Vor der Verwendung dieser APIs WSANOTINITIALISED einem erfolgreichen AfxSocketInit muss auftreten.

  • WSAENETDOWN, das die Windows Socket-Implementierung hat, dass das Netzwerksubsystem fehlgeschlagen ist.

  • WSAEINVAL   nHow ist ungültig.

  • Ist blockierenden Windows Socket-Vorgang WSAEINPROGRESS A ausgeführt.

  • WSAENOTCONN der Socket wird nicht verbunden (nur SOCK_STREAM ).

  • WSAENOTSOCK der Deskriptor ist kein Socket.

Hinweise

ShutDown wird für alle Typen Sockets verwendet, um Aufnahme, Übertragung oder beide zu deaktivieren. Wenn nHow 0 ist, unten empfängt auf dem Socket ist nicht zulässig. Dies hat keine Auswirkungen auf die unteren Protokollebenen.

Für TCP (Transmission Control Protocol), wird das TCP-Fenster nicht geändert und eingehende Daten werden akzeptiert (aber nicht bestätigt) bis das Fenster erschöpft ist. Für User Datagram-Protokoll (UDP), werden eingehende Datagramme akzeptiert und in die Warteschlange gestellt. In keinem Fall wird ein ICMP-Fehlerpaket generiert. Wenn nHow 1 ist unten sendet, werden nicht zugelassen. Für TCP-Sockets wird eine FLOSSE gesendet. Einstellung nHow zu 2 Deaktiviert sendet und empfängt, wie oben beschrieben.

Beachten Sie, dass ShutDown nicht den Socket wird geschlossen, und die Ressourcen, die dem Socket angefügt werden, werden nicht freigegeben, wenn Schließen aufgerufen wurde. Eine Anwendung sollte nicht auf in der Lage sein beruhen, einen Socket wiederzuverwenden, nachdem sie heruntergefahren wurde. Insbesondere wird eine Windows Socket-Implementierung nicht erforderlich, um die Verwendung von Verbinden auf einem solchen Socket zu unterstützen.

Beispiel

Im Beispiel für CAsyncSocket::OnReceive.

Anforderungen

Header: afxsock.h

Siehe auch

Referenz

CAsyncSocket-Klasse

Hierarchiediagramm

CAsyncSocket::Connect

CAsyncSocket::Create