WSARecvFrom

データグラムを受信し、送信元アドレスを格納する。

WSARecvFrom s, lpBuffers, dwBufferCount, lpNumberOfBytesRecvd, lpFlags, lpFrom, lpFromlen, lpOverlapped, lpCompletionRoutine

s : [int] ソケットを識別する記述子。
lpBuffers : [var] WSABUF 構造体の配列へのポインタ。各 WSABUF 構造体はバッファへのポインタとその長さを含む。
dwBufferCount : [int] lpBuffers 配列内の WSABUF 構造体の数。
lpNumberOfBytesRecvd : [var] WSARecvFrom 操作が即時完了した場合に、この呼び出しで受信したバイト数へのポインタ。lpOverlapped が NULL でない場合、誤った結果を避けるために本引数を NULL にする。本引数を NULL にできるのは lpOverlapped が NULL でない場合のみ。
lpFlags : [var] WSARecvFrom の動作を変更するためのフラグへのポインタ。下記の備考を参照。
lpFrom : [var] オーバーラップ操作の完了時に送信元アドレスを格納するバッファへのオプションのポインタ。
lpFromlen : [var] lpFrom を指定したときだけ必要となる "from" バッファのサイズ (バイト単位) へのポインタ。
lpOverlapped : [var] WSAOVERLAPPED 構造体へのポインタ (非オーバーラップソケットでは無視される)。
lpCompletionRoutine : [int] 型: \_In_opt\_ [**LPWSAOVERLAPPED_COMPLETION_ROUTINE**](./nc-winsock2-lpwsaoverlapped_completion_routine.md) WSARecvFrom 操作が完了した時に呼び出される完了ルーチンへのポインタ (非オーバーラップソケットでは無視される)。

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

解説

データグラムを受信し、送信元アドレスを格納する。

[戻り値]
エラーがなく受信操作が即時完了した場合、WSARecvFrom
はゼロを返す。この場合、呼び出し元スレッドがアラート可能状態になった時点で完了ルーチンが呼び出されるようスケジュール済みとなる。そうでない場合は
SOCKET_ERROR が返され、WSAGetLastError で特定のエラーコードを取得できる。WSA_IO_PENDING
エラーコードはオーバーラップ操作が正常に開始され、完了が後で通知されることを示す。それ以外のエラーコードはオーバーラップ操作が正常に開始されず、完了通知は発生しないことを示す。
このドキュメントは省略されている。

[備考]
WSARecvFrom 関数は、標準の recvfrom 関数に対して次の 3 つの重要な領域で機能を追加する。
このドキュメントは省略されている。

情報

プラグイン / モジュール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