LPWSPRECVDISCONNECT-Rückruffunktion (ws2spi.h)
Die LPWSPRecvDisconnect-Funktion beendet den Empfang auf einem Socket und ruft die Trenndaten ab, wenn der Socket verbindungsorientiert ist.
Syntax
LPWSPRECVDISCONNECT Lpwsprecvdisconnect;
int Lpwsprecvdisconnect(
[in] SOCKET s,
[out] LPWSABUF lpInboundDisconnectData,
[out] LPINT lpErrno
)
{...}
Parameter
[in] s
Deskriptor, der einen Socket identifiziert.
[out] lpInboundDisconnectData
Zeiger auf einen Puffer, in den die Trenndaten kopiert werden sollen.
[out] lpErrno
Zeiger auf den Fehlercode.
Rückgabewert
Wenn kein Fehler auftritt, gibt LPWSPRecvDisconnect null zurück. Andernfalls wird der Wert SOCKET_ERROR zurückgegeben, und ein bestimmter Fehlercode ist in lpErrno verfügbar.
Fehlercode | Bedeutung |
---|---|
Fehler beim Netzwerksubsystem. | |
Der Puffer, auf den vom Parameter lpInboundDisconnectData verwiesen wird, ist zu klein. | |
Trennen von Daten wird von der angegebenen Protokollfamilie nicht unterstützt. | |
Der Windows Sockets-Aufruf wird blockiert, oder der Dienstanbieter verarbeitet weiterhin eine Rückruffunktion. | |
Socket ist nicht verbunden (nur verbindungsorientierte Sockets). | |
Der Deskriptor ist kein Socket. |
Hinweise
LPWSPRecvDisconnect wird auf verbindungsorientierten Sockets verwendet, um den Empfang zu deaktivieren und alle eingehenden Trennungsdaten von der Remotepartei abzurufen.
Nachdem diese Funktion erfolgreich ausgestellt wurde, werden nachfolgende Empfangsvorgänge für den Socket nicht mehr zugelassen. Dies hat keine Auswirkungen auf die unteren Protokollebenen. Bei TCP wird das TCP-Fenster nicht geändert, und eingehende Daten werden akzeptiert (aber nicht bestätigt), bis das Fenster erschöpft ist. Für UDP werden eingehende Datagramme akzeptiert und in die Warteschlange eingereiht. In keinem Fall wird ein ICMP-Fehlerpaket generiert.
Um eingehende Trennungsdaten erfolgreich zu empfangen, muss ein Windows Sockets SPI-Client andere Mechanismen verwenden, um festzustellen, ob die Verbindung geschlossen wurde. Beispielsweise muss ein Client eine FD_CLOSE Benachrichtigung empfangen oder einen Null-Rückgabewert oder einen WSAEDISCON-Fehlercode von LPWSPRecv abrufen.
Beachten Sie, dass LPWSPRecvDisconnect den Socket nicht schließt und an den Socket angefügte Ressourcen erst freigegeben werden, wenn LPWSPCloseSocket aufgerufen wird.
Hinweis
LPWSPRecvDisconnect blockiert nicht, unabhängig von der einstellung SO_LINGER für den Socket. Ein SPI-Client für Windows Sockets sollte sich nicht darauf verlassen, einen Socket wiederverwenden zu können, nachdem er LPWSPRecvDisconnected wurde. Insbesondere ist ein Windows Sockets-Anbieter nicht verpflichtet, die Verwendung von LPWSPConnect auf einem solchen Socket zu unterstützen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | ws2spi.h |