Función WSASendDisconnect (winsock2.h)
La función WSASendDisconnect inicia la finalización de la conexión para el socket y envía datos de desconexión.
Sintaxis
int WSAAPI WSASendDisconnect(
[in] SOCKET s,
[in] LPWSABUF lpOutboundDisconnectData
);
Parámetros
[in] s
Descriptor que identifica un socket.
[in] lpOutboundDisconnectData
Puntero a los datos de desconexión salientes.
Valor devuelto
Si no se produce ningún error, WSASendDisconnect devuelve cero. De lo contrario, se devuelve un valor de SOCKET_ERROR y se puede recuperar un código de error específico llamando a WSAGetLastError.
Código de error | Significado |
---|---|
Debe producirse una llamada de WSAStartup correcta antes de usar esta función. | |
Error en el subsistema de red. | |
El parámetro lpOutboundDisconnectData no es NULL y el proveedor de servicios no admite los datos de desconexión. | |
Una llamada de Bloqueo de Windows Sockets 1.1 está en curso o el proveedor de servicios sigue procesando una función de devolución de llamada. | |
El socket no está conectado (solo sockets orientados a la conexión). | |
El descriptor no es un socket. | |
El parámetro lpOutboundDisconnectData no está completamente incluido en una parte válida del espacio de direcciones del usuario. |
Comentarios
La función WSASendDisconnect se usa en sockets orientados a la conexión para deshabilitar la transmisión e iniciar la terminación de la conexión junto con la transmisión de datos de desconexión, si existe. Esto equivale a un apagado (SD_SEND), excepto que WSASendDisconnect también permite enviar datos de desconexión (en protocolos que lo admiten).
Una vez que esta función se haya emitido correctamente, no se permiten los envíos posteriores.
El parámetro lpOutboundDisconnectData , si no ES NULL, apunta a un búfer que contiene los datos de desconexión salientes que se enviarán a la entidad remota para su recuperación mediante WSARecvDisconnect.
La función WSASendDisconnect no se bloquea independientemente de la configuración de SO_LINGER en el socket.
Una aplicación no debe confiar en poder reutilizar un socket después de llamar a WSASendDisconnect. En concreto, no es necesario que un proveedor de Windows Sockets admita el uso deWSAConnect/ en este tipo de socket.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winsock2.h |
Library | Ws2_32.lib |
Archivo DLL | Ws2_32.dll |