Network 0xa4


マルチキャスト受信


【機能】

 指定ソケットに対するマルチキャストデータパケットをUDP受信します。

【関数】

 int MulticastRecv( int sck, char *data, int size ,int *tofrom )
 {
   return trapa_svc( 0xa4, pid, sck, data, size, tofrom );
 }

【入力】

 sck ソケット番号 「ソケット」ファンクションで取得した識別番号
 data 受信データ 受信データを格納する領域の先頭アドレス
 size サイズ 受信データを格納する領域のサイズ
 tofrom 宛先・送信元情報 宛先・送信元情報を格納する領域の先頭アドレス

【出力】

 リターンコード 0以上 受信データバイト数
+0
+1
+2
+3
tofrom+00
宛先のマルチキャストグループIPアドレス
tofrom+04
送信元のIPアドレス
tofrom+08
送信元のポート番号
パケット種別

 パケット種別 0 UDPユニキャストパケット
1 UDPブロードキャスト
2 UDPマルチキャスト

ERR_PARAM パラメータエラー
ERR_PID 不正プロセスID
ERR_LANCLOSED LAN未オープン
ERR_NOSOCKET ソケット番号が無効
ERR_NOUDP UDPソケットでない
ERR_NOBIND バインドされていない
ERR_MULTINOREG マルチキャスト登録なし

【解説】

 システムが受信した指定ソケットに対する受信パケットデータを、指定されたアドレスに格納し、宛先および送信元のアドレス情報・受信パケット種別と共に返します。
 受信したパケットデータが受信データを格納する領域のバイト数より大きい場合、指定バイト数を超える受信データは破棄されます。
 受信可能なパケットの最大サイズは、5094バイトです。

 受信パケットがない場合、リターンコード0で直ちに復帰します。(非ブロック)

 受信データを格納する領域の先頭アドレス・送信元のアドレス情報を格納する領域のアドレスがNULLの場合、または受信データを格納する領域のバイト数が0の場合、パラメータエラーになります。

【関連項目】

 マルチキャスト送信 パケット受信

【注意】

 「パケット受信」ファンクションで受信することも可能ですが、その場合、「宛先マルチキャストグループアドレス」情報および「パケット種別」情報の一部が取得できません。