WSASendDisconnect
The Windows
Sockets WSASendDisconnect function initiates termination of the
connection for the socket and sends disconnect data.
int WSASendDisconnect (
SOCKET s, |
|
LPWSABUF lpOUT boundDisconnectData |
|
); |
|
Parameters
s
[in] A
descriptor identifying a socket.
lpOutboundDisconnectData
[in] A
pointer to the outgoing disconnect data.
Remarks
WSASendDisconnect is used on connection-oriented sockets to disable
transmission, and to initiate termination of the connection along with the
transmission of disconnect data, if any.
After this
function has been successfully issued, subsequent sends are disallowed.
lpOutboundDisconnectData, if not NULL, points to a buffer containing the
outgoing disconnect data to be sent to the remote party for retrieval by using WSARecvDisconnect.
Note that WSASendDisconnect
does not close the socket, and resources attached to the socket will not be
freed until closesocket is invoked.
Comments
WSASendDisconnect does not block regardless of the SO_LINGER setting on
the socket.
An
application should not rely on being able to re-use a socket after it has been WSASendDisconnected.
In particular, a Windows Sockets provider is not required to support the use of
connect/WSAConnect on such a socket.
Return Values
If no error
occurs, WSASendDisconnect returns zero. Otherwise, a value of
SOCKET_ERROR is returned, and a specific error code may be retrieved by calling
WSAGetLastError.
Error Codes
WSANOTINITIALISED |
A
successful WSAStartup must occur before using this function. |
WSAENETDOWN |
The network
subsystem has failed. |
WSAENOPROTOOPT |
The
parameter lpOutboundDisconnectData is not NULL, and the disconnect
data is not supported by the service provider. |
WSAEINPROGRESS |
A blocking
Windows Sockets 1.1 call is in progress, or the service provider is still
processing a callback function. |
WSAENOTCONN |
The socket
is not connected (connection-oriented sockets only). |
WSAENOTSOCK |
The
descriptor is not a socket. |
WSAEFAULT |
The lpOutboundDisconnectData
argument is not totally contained in a valid part of the user address
space. |
See Also