2008-09-25 47 views
2

VxWorks 5.5でUDPマルチキャストを受信できませんでした。私はマルチキャストグループに参加しました:VxWorks 5.5でUDPマルチキャストを受信する方法

setsockopt(soc, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *) &ipMreq, sizeof (ipMreq)); 

隣接するWindowsマシン上の同様のコードはマルチキャストを受信します。 VxWorksからマルチキャストを送信できます。 ifShow()はインターフェイスがマルチキャスト可能であることを示します。 MCAST_ROUTINGはカーネル設定で有効ですが、それでもマルチキャストを受信できません。

編集:RealTekイーサネットドライブRXコンフィギュレーションレジスタにビットを設定して、マルチキャストをアプリケーション層に渡す必要がありました。

#define RTL_RXCG_AM   0x04  /* Accept Multicast */ 

答えて

1

Join setsockopt()コールの戻り値が実際に成功していることを確認していますか?過去にVxWorks 5.5に特有の問題がありました。私のマルチキャスト結合は失敗していてはいけません。 WindRiverから新しいライブラリを入手して問題を解決しなければならないと私は信じています。

編集:マルチキャストをVxWorksで使用するための特定のトリックはありません。標準のBSDソケット操作を使用する必要があります。インターフェイスがユニキャストトラフィックを正常に受信でき、ネットワークアナライザ(Wiresharkなど)がマルチキャストJOINが送信されており、受信マルチキャストパケットが正しく形成されていることを示している場合は、ドライバの問題が疑われます。 WindRiverのサポートは、過去にこの種の問題で非常に役に立ちました。私はあなたがそのレベルの援助を得るための支援契約を結んでいるかどうかはわかりません。

+0

はい、setsockopt()はNO_ERRORを返します。 – jholl

関連する問題