WSASendDisconnect 関数 (winsock2.h)
WSASendDisconnect 関数は、ソケットの接続の終了を開始し、切断データを送信します。
構文
int WSAAPI WSASendDisconnect(
[in] SOCKET s,
[in] LPWSABUF lpOutboundDisconnectData
);
パラメーター
[in] s
ソケットを識別する記述子。
[in] lpOutboundDisconnectData
送信切断データへのポインター。
戻り値
エラーが発生しない場合、 WSASendDisconnect は 0 を返します。 それ以外の場合は、SOCKET_ERRORの値が返され、 WSAGetLastError を呼び出すことによって特定のエラー コードを取得できます。
エラー コード | 意味 |
---|---|
この関数を使用する前に 、WSAStartup 呼び出しが正常に行われる必要があります。 | |
ネットワーク サブシステムが失敗しました。 | |
パラメーター lpOutboundDisconnectData は NULL ではなく、切断データはサービス プロバイダーでサポートされていません。 | |
ブロックしている Windows ソケット 1.1 呼び出しが進行中であるか、サービス プロバイダーがコールバック関数を処理しています。 | |
ソケットが接続されていません (接続指向ソケットのみ)。 | |
記述子はソケットではありません。 | |
lpOutboundDisconnectData パラメーターは、ユーザー アドレス空間の有効な部分に完全には含まれていません。 |
注釈
WSASendDisconnect 関数は、接続指向ソケットで使用され、伝送を無効にし、接続の終了と切断データの転送 (ある場合) を開始します。 これはシャットダウン (SD_SEND) と同じですが、 WSASendDisconnect では切断データの送信も許可されます (これをサポートするプロトコル内)。
この関数が正常に発行されると、後続の送信は許可されません。
lpOutboundDisconnectData パラメーターは、NULL でない場合は、WSARecvDisconnect を使用して取得するためにリモート パーティに送信される送信切断データを含むバッファーを指します。
WSASendDisconnect 関数は、ソケットのSO_LINGER設定に関係なくブロックしません。
アプリケーションは、 WSASendDisconnect を呼び出した後にソケットを再利用できることに依存しないようにする必要があります。 特に、Windows ソケット プロバイダーは、このようなソケットでのWSAConnect の接続/の使用をサポートする必要はありません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winsock2.h |
Library | Ws2_32.lib |
[DLL] | Ws2_32.dll |