Funzione di callback LPWSPSHUTDOWN (ws2spi.h)
La funzione LPWSPShutdown disabilita gli invii e/o le ricevute in un socket.
Sintassi
LPWSPSHUTDOWN Lpwspshutdown;
int Lpwspshutdown(
[in] SOCKET s,
[in] int how,
[out] LPINT lpErrno
)
{...}
Parametri
[in] s
Descrittore che identifica un socket.
[in] how
Flag che descrive i tipi di operazione che non saranno più consentiti.
[out] lpErrno
Puntatore al codice di errore.
Valore restituito
Se non si verifica alcun errore, LPWSPShutdown restituisce zero. In caso contrario, viene restituito un valore di SOCKET_ERROR e in lpErrno è disponibile un codice di errore specifico.
Codice di errore | Significato |
---|---|
Il sottosistema di rete non è riuscito. | |
Il modo in cui non è valido o non è coerente con il tipo di socket. Ad esempio, SD_SEND viene usato con un tipo di socket UNI_RECV. | |
La funzione viene richiamata quando è in corso un callback. | |
Il socket non è connesso (solo socket orientati alla connessione). | |
Il descrittore non è un socket. |
Commenti
La funzione LPWSPShutdown viene usata in tutti i tipi di socket per disabilitare la ricezione, la trasmissione o entrambi.
Se la modalità di SD_RECEIVE, le successive ricevute sul socket non saranno consentite. Questo non ha alcun effetto sui livelli di protocollo inferiori. Per i socket TCP, se sono ancora presenti dati in coda sul socket in attesa di ricezione o i dati arrivano successivamente, la connessione viene reimpostata, poiché i dati non possono essere recapitati all'utente. Per i socket UDP, i datagrammi in ingresso vengono accettati e in coda. In nessun caso verrà generato un pacchetto di errore ICMP.
Se la modalità di SD_SEND, gli invii successivi sul socket non sono consentiti. Per i socket TCP, verrà inviato un FIN. L'impostazione di come SD_BOTH disabilita sia gli invii che i messaggi ricevuti come descritto in precedenza.
Si noti che LPWSPShutdown non chiude il socket e le risorse collegate al socket non verranno liberate finché non viene richiamato LPWSPCloseSocket .
Nota
La funzione LPWSPShutdown non blocca indipendentemente dall'impostazione SO_LINGER sul socket. Un client SPI Windows Sockets non deve basarsi sulla possibilità di riutilizzare un socket dopo l'arresto. In particolare, non è necessario un provider di servizi Windows Sockets per supportare l'uso di LPWSPConnect su un socket di questo tipo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | ws2spi.h |