UPD送受信を行うプログラムを、C#2008Expressにて制作中です。

実装例を検索しましたがVBでの実装例しかなくそれを参考に作成しました。
ユニキャストでの送受信は問題なく動作したのですが、
マルチキャストでの受信開始前のJoinMulticastGroup()にて
「要求したアドレスのコンテキストが無効です。」の例外が発生します。
例外が発せ英する原因を教えていただけないでしょうか。

IPAddress GroupIP = IPAddress.Parse("192.168.0.88");
UdpClient udpTerm = new UdpClient(2048);
udpTerm.JoinMulticastGroup(GroupIP, 50);

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/11/25 12:27:42
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:freemann No.1

回答回数335ベストアンサー獲得回数55

ポイント100pt

マルチキャストのアドレスが有効な範囲外になっているためのようです。

次のサイトの解説を読んでみてください。

http://msdn.microsoft.com/ja-jp/library/2fxkak8t(VS.80).aspx

>>マルチキャスト アドレスの範囲は 224.0.0.0 ~ 239.255.255.255 です。この範囲外のアドレスを指定した場合、または要求先のルータでマルチキャストが有効になっていない場合、UdpClient は SocketException をスローします。

id:Lovin

回答ありがとうございます。

マルチキャストというものを理解していないつもりではいましたが、

その行為がおろかであったことがわかりました。

マルチキャストアドレスを"234.1683.0.0"にすることで

例外が発生しなくなりました。

ご提示頂いたURLをじっくり読んでみます。

2009/11/25 12:27:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません