0

IPv4 では、[IGMP のバージョン 3 は「ソース フィルタリング」のサポートを追加します。つまり、システムが特定のソース アドレスからのみパケットを受信することに関心があることを報告する機能です。][1]

この動作をサポートするために、C# アプリケーションで IGMPv3 を使用しています。これが私のやり方です。

現在、アプリケーションに IPv6 のサポートを追加する過程にあり、IPv4 と同じ動作を得る必要があります。私が読んだことから、IPv6 の IGMPv3 に相当するプロトコルはMLDv2です。これを Socket を使用して C# に実装する方法について誰か考えがありますか?

ありがとう!

4

2 に答える 2

1

RFC3678プロトコルに依存しない API は Vista+ でのみ利用可能であり、これが問題を説明している可能性があります。

C# ランタイムが IPv6 を完全にサポートしている場合は、GROUP_REQまたはGROUP_SOURCE_REQ構造を一致させる必要があります。IPv4 API と一致する SSM 用の IPv6 固有の API はありません。これは、開発者が最終的に API の無意味な重複を放棄し、最終的に 1 つのスーパー セットに落ち着いたためです。

残念ながら、C# はipv6_mreqを実装しAddMembershipて失敗する可能性がありAddSourceMembershipます。ドキュメントには詳細がまったくありません。

必要なすべてのSocketOptionName値が C# で定義されているわけではありません。

/* RFC 3678 */
#define MCAST_JOIN_GROUP       41
#define MCAST_LEAVE_GROUP      42
#define MCAST_BLOCK_SOURCE     43
#define MCAST_UNBLOCK_SOURCE   44
#define MCAST_JOIN_SOURCE_GROUP        45
#define MCAST_LEAVE_SOURCE_GROUP       46
#define MCAST_MSFILTER         47
于 2011-09-09T07:02:48.547 に答える