Freigeben über


LPWSPSHUTDOWN-Rückruffunktion (ws2spi.h)

Die LPWSPShutdown-Funktion deaktiviert das Senden und/oder Empfangen auf einem Socket.

Syntax

LPWSPSHUTDOWN Lpwspshutdown;

int Lpwspshutdown(
  [in]  SOCKET s,
  [in]  int how,
  [out] LPINT lpErrno
)
{...}

Parameter

[in] s

Deskriptor, der einen Socket identifiziert.

[in] how

Flag, das beschreibt, welche Arten von Vorgängen nicht mehr zulässig sind.

[out] lpErrno

Zeiger auf den Fehlercode.

Rückgabewert

Wenn kein Fehler auftritt, gibt LPWSPShutdown null zurück. Andernfalls wird der Wert SOCKET_ERROR zurückgegeben, und ein bestimmter Fehlercode ist in lpErrno verfügbar.

Fehlercode Bedeutung
WSAENETDOWN
Beim Netzwerksubsystem ist ein Fehler aufgetreten.
WSAEINVAL
Das Wie ist ungültig oder nicht mit dem Sockettyp konsistent. Beispielsweise wird SD_SEND mit einem UNI_RECV Sockettyp verwendet.
WSAEINPROGRESS
Die Funktion wird aufgerufen, wenn ein Rückruf ausgeführt wird.
WSAENOTCONN
Socket ist nicht verbunden (nur verbindungsorientierte Sockets).
WSAENOTSOCK
Der Deskriptor ist kein Socket.

Hinweise

Die LPWSPShutdown-Funktion wird für alle Arten von Sockets verwendet, um Empfang, Übertragung oder beides zu deaktivieren.

Wenn wie SD_RECEIVE ist, werden nachfolgende Empfangsvorgänge auf dem Socket nicht zugelassen. Dies hat keine Auswirkungen auf die unteren Protokollebenen. Bei TCP-Sockets wird die Verbindung zurückgesetzt, da die Daten nicht an den Benutzer übermittelt werden können, wenn weiterhin Daten auf dem Socket in der Warteschlange stehen, die auf den Empfang warten. Für UDP-Sockets werden eingehende Datagramme akzeptiert und in die Warteschlange gestellt. In keinem Fall wird ein ICMP-Fehlerpaket generiert.

Wenn wie SD_SEND ist, sind nachfolgende Senden auf dem Socket nicht zulässig. Für TCP-Sockets wird ein FIN gesendet. Wenn Sie festlegen, wie SD_BOTH festgelegt wird, werden sowohl Senden als auch Empfangen deaktiviert, wie oben beschrieben.

Beachten Sie, dass LPWSPShutdown den Socket nicht schließt und an den Socket angefügte Ressourcen erst freigegeben werden, wenn LPWSPCloseSocket aufgerufen wird.

Hinweis

Die LPWSPShutdown-Funktion wird unabhängig von der SO_LINGER Einstellung für den Socket nicht blockiert. Ein Windows Sockets SPI-Client sollte sich nicht darauf verlassen, dass ein Socket nach dem Herunterfahren wiederverwendet werden kann. Insbesondere muss ein Windows Sockets-Dienstanbieter die Verwendung von LPWSPConnect auf einem solchen Socket nicht unterstützen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile ws2spi.h

Weitere Informationen

LPWSPConnect

LPWSPSocket