Win32 API 日本語リファレンス
ホーム › Networking.WinSock › LPWSPSENDDISCONNECT

LPWSPSENDDISCONNECT

コールバック

シグネチャ

INT LPWSPSENDDISCONNECT(
    SOCKET s,
    WSABUF* lpOutboundDisconnectData,
    INT* lpErrno
);

パラメーター

フィールド型説明
sSOCKETソケットを識別する記述子。
lpOutboundDisconnectDataWSABUF*送信する切断データへのポインター。
lpErrnoINT*エラーコードへのポインター。

公式ドキュメント

LPWSPSendDisconnect 関数は、ソケットの接続の終了処理を開始し、切断データを送信します。

戻り値

エラーが発生しなかった場合、LPWSPSendDisconnect は 0 を返します。それ以外の場合は SOCKET_ERROR が返され、固有のエラーコードが lpErrno に格納されます。

エラーコード 意味
WSAENETDOWN
ネットワークサブシステムが機能しなくなりました。
WSAENOPROTOOPT
lpOutboundDisconnectData パラメーターが null ではありませんが、切断データがサービスプロバイダーでサポートされていません。
WSAEINPROGRESS
ブロッキング Windows Sockets 呼び出しが進行中であるか、サービスプロバイダーがコールバック関数をまだ処理しています。
WSAENOTCONN
ソケットが接続されていません (コネクション型ソケットのみ)。
WSAENOTSOCK
記述子がソケットではありません。
WSAEFAULT
lpOutboundDisconnectData パラメーターが、ユーザーアドレス空間の有効な部分に完全には含まれていません。

解説(Remarks)

LPWSPSendDisconnect 関数は、コネクション型ソケットで送信を無効にし、切断データがある場合はその送信を伴って接続の終了処理を開始するために使用します。

この関数が正常に発行された後は、以降の送信は許可されません。

lpOutboundDisconnectData パラメーターが null でない場合、このパラメーターはリモート側へ送信する切断データを格納したバッファーを指します。

LPWSPSendDisconnect はソケットを閉じないこと、および LPWSPCloseSocket が呼び出されるまでソケットに付随するリソースは解放されないことに注意してください。

メモ

LPWSPSendDisconnect 関数は、ソケットの SO_LINGER 設定に関係なくブロックしません。Windows Sockets SPI クライアントは、切断後のソケットを再利用できることを前提にしないでください。特に、Windows Sockets プロバイダーは、そのようなソケットに対する LPWSPConnect の使用をサポートする必要はありません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)