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 09:05:16
  • 終了:2009/11/25 12:27:42

回答(1件)

id:freemann No.1

freemann回答回数304ベストアンサー獲得回数472009/11/25 10:42:07

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません