Network 0x5b 指定ソケットに対するデータパケットをUDP受信します。 システムが受信した指定ソケットに対する受信パケットデータを、指定されたアドレスに格納し、送信元のアドレス情報・受信パケット種別と共に返します。 受信したパケットデータが受信データを格納する領域のバイト数より大きい場合、指定バイト数を超える受信データは破棄されます。 受信パケットがない場合、リターンコード0で直ちに復帰します。(非ブロック) 受信データを格納する領域の先頭アドレス・送信元のアドレス情報を格納する領域のアドレスがNULLの場合、または受信データを格納する領域のバイト数が0の場合、パラメータエラーになります。
int RecvFrom( int sck, char *data, int size ,int *from )
{
return trapa_svc( 0x5b, pid, sck, data, size, from );
}
sck
ソケット番号
「ソケット」ファンクションで取得した識別番号
data
受信データ
受信データを格納する領域の先頭アドレス
size
サイズ
受信データを格納する領域のサイズ
from
送信元情報
送信元情報を格納する領域の先頭アドレス
リターンコード
0以上
受信データバイト数
パケット種別
0
UDPユニキャストパケット
1
UDPブロードキャスト・マルチキャスト
ERR_PARAM
パラメータエラー
ERR_PID
不正プロセスID
ERR_LANCLOSED
LAN未オープン
ERR_NOSOCKET
ソケット番号が無効
ERR_NOUDP
UDPソケットでない
ERR_NOBIND
バインドされていない
受信したパケットがブロードキャストパケットの場合には、パケット種別に1が返されます。
受信可能なパケットの最大サイズは、5094バイトです。