Condividi tramite


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
WSAENETDOWN
Il sottosistema di rete non è riuscito.
WSAEINVAL
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.
WSAEINPROGRESS
La funzione viene richiamata quando è in corso un callback.
WSAENOTCONN
Il socket non è connesso (solo socket orientati alla connessione).
WSAENOTSOCK
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

Vedi anche

LPWSPConnect

LPWSPSocket