Funzione WSASendDisconnect (winsock2.h)
La funzione WSASendDisconnect avvia la terminazione della connessione per il socket e invia i dati di disconnessione.
Sintassi
int WSAAPI WSASendDisconnect(
[in] SOCKET s,
[in] LPWSABUF lpOutboundDisconnectData
);
Parametri
[in] s
Descrittore che identifica un socket.
[in] lpOutboundDisconnectData
Puntatore ai dati di disconnessione in uscita.
Valore restituito
Se non si verifica alcun errore, WSASendDisconnect restituisce zero. In caso contrario, viene restituito un valore di SOCKET_ERROR e un codice di errore specifico può essere recuperato chiamando WSAGetLastError.
Codice di errore | Significato |
---|---|
Prima di usare questa funzione, è necessario eseguire una chiamata WSAStartup riuscita. | |
Il sottosistema di rete non è riuscito. | |
Il parametro lpOutboundDisconnectData non è NULL e i dati di disconnessione non sono supportati dal provider di servizi. | |
Una chiamata windows Sockets 1.1 bloccata è in corso oppure il provider di servizi sta ancora elaborando una funzione di callback. | |
Il socket non è connesso (solo socket orientati alla connessione). | |
Il descrittore non è un socket. | |
Il parametro lpOutboundDisconnectData non è completamente contenuto in una parte valida dello spazio degli indirizzi utente. |
Commenti
La funzione WSASendDisconnect viene usata sui socket orientati alla connessione per disabilitare la trasmissione e avviare la terminazione della connessione insieme alla trasmissione dei dati disconnessi, se presente. Equivale a un arresto (SD_SEND), ad eccezione del fatto che WSASendDisconnect consente anche l'invio di dati di disconnessione (nei protocolli che lo supportano).
Dopo l'emissione di questa funzione, gli invii successivi non sono consentiti.
Il parametro lpOutboundDisconnectData , se non NULL, punta a un buffer contenente i dati di disconnessione in uscita da inviare alla parte remota per il recupero tramite WSARecvDisconnect.
La funzione WSASendDisconnect non blocca indipendentemente dall'impostazione SO_LINGER sul socket.
Un'applicazione non deve basarsi sulla possibilità di riutilizzare un socket dopo aver chiamato WSASendDisconnect. In particolare, un provider Windows Sockets non è necessario per supportare l'uso della connessione/WSAConnect in 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] |
Piattaforma di destinazione | Windows |
Intestazione | winsock2.h |
Libreria | Ws2_32.lib |
DLL | Ws2_32.dll |