closesocket

closesocket 関数 (winsock.h) は、既存のソケットを閉じる。

closesocket s

s : [int] 閉じるソケットを識別する記述子。

(プラグイン / モジュール : ws2_32.dll)

解説

closesocket 関数 (winsock.h) は、既存のソケットを閉じる。

[戻り値]
エラーがない場合、closesocket はゼロを返す。そうでない場合は SOCKET_ERROR
が返され、WSAGetLastError で特定のエラーコードを取得できる。
このドキュメントは省略されている。

[備考]
closesocket 関数はソケットを閉じる。s 引数に渡したソケット記述子を解放するために使う。closesocket
発行直後に、その記述子はシステムによって再利用される可能性がある。そのため、同記述子への以降の参照が WSAENOTSOCK
で失敗することを期待するのは信頼性がない。Winsock クライアントは、他の Winsock 関数呼び出しと同時に同じ s に対して
closesocket を発行してはならない。このプロセスの任意スレッドが発行した、オーバーラップソケット上の保留中オーバーラップ
send/receive 操作 (WSASend / WSASendTo / WSARecv / WSARecvFrom)
はすべてキャンセルされる。これらに対して指定されたイベント、完了ルーチン、完了ポートアクションは実行される。保留中のオーバーラップ操作は
WSA_OPERATION_ABORTED エラーステータスで失敗する。closesocket が戻った時点で未完了 I/O
操作のすべてが保証付きで完了しているとは仮定すべきではない。closesocket は保留中 I/O
のキャンセルを開始するが、それが完了することまで保証するわけではない。したがって未完了 I/O で参照されている資源
(WSAOVERLAPPED 構造体など) は、I/O が実際に完了するまでクリーンアップしてはならない。
ソケット資源をシステムに返却するため、socket の各成功呼び出しに対して対応する closesocket
呼び出しを常に行うべきである。linger 構造体は、データ送信待ちのキューがある状態で closesocket
が呼ばれたときのソケット挙動を指定する情報を保持する。linger 構造体の l_onoff
メンバは、指定時間の間ソケットを開いたままにするかを決める
このドキュメントは省略されている。

情報

プラグイン / モジュールws2_32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ws2_32_gen2.hs