指定された有効期間 (TTL: Time to Live) で UdpClient をマルチキャスト グループに追加します。
Overloads Public Sub JoinMulticastGroup( _
ByVal multicastAddr As IPAddress, _ ByVal timeToLive As Integer _)
[C#]
public void JoinMulticastGroup(IPAddressmulticastAddr,inttimeToLive);
[C++]
public: void JoinMulticastGroup(IPAddress* multicastAddr,inttimeToLive);
[JScript]
public function JoinMulticastGroup(
multicastAddr : IPAddress,timeToLive : int);
パラメータ
- multicastAddr
参加するマルチキャスト グループの IPAddress 。 - timeToLive
ルーター ホップ数で計測した有効期間 (TTL)。
例外
例外の種類 | 条件 |
---|---|
ArgumentOutOfRangeException | 提供される TTL の値が 0 から 255 ではありません。 |
ObjectDisposedException | 基になる Socket は閉じられています。 |
SocketException | ソケットへのアクセス中にエラーが発生しました。詳細については「解説」を参照してください。 |
ArgumentNullException | multicastAddr が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | この IP アドレスは、ソケットのアドレッシング スキームを定義する AddressFamily 値と互換性がありません。 |
解説
JoinMulticastGroup メソッドは、指定した IPAddress を使用して、 UdpClient がマルチキャスト グループをサブスクライブするようにします。 JoinMulticastGroup メソッドの呼び出し後、基になる Socket がインターネット グループ管理プロトコル (IGMP) パケットをルータに送信し、マルチキャスト グループのメンバシップを要求します。マルチキャスト アドレスの範囲は 224.0.0.0 ~ 239.255.255.255 です。この範囲外のアドレスを指定した場合、または要求先のルータでマルチキャストが有効になっていない場合、 UdpClient は SocketException をスローします。 SocketException が発生した場合は、 SocketException.ErrorCode を使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルから、エラーの詳細情報を確認できます。これは MSDN から入手できます。 timeToLive パラメータは、マルチキャスト データグラムに対して、破棄される前に許可されるルータ ホップの数を指定します。ルータによってマルチキャスト グループのメンバとして示された UdpClient は、指定した IPAddress に送信されたマルチキャスト データグラムを受信できます。
メモ UdpClient は、マルチキャスト ポート番号を使用して作成する必要があります。この番号を使用しないと、マルチキャスト データグラムを受信できません。 JoinMulticastGroup メソッドの前に Connect メソッドを呼び出さないでください。受信メソッドが動作しなくなります。マルチキャスト IP アドレスには、マルチキャスト グループに所属していなくてもデータグラムを送信できます。
マルチキャスト グループに参加する前に、ソケットがポートまたはエンドポイントにバインドされていることを確認してください。ポートまたはエンドポイントをパラメータとして受け取るコンストラクタの 1 つを呼び出すと、これを確認できます。
マルチキャスト データグラムの受信を停止するには、 DropMulticastGroup メソッドを呼び出して、削除元グループの IPAddress を指定します。
使用例
[Visual Basic, C#, C++] マルチキャスト アドレスと TTL を表す数値の 2 つのパラメータを提供することによりマルチキャスト グループに参加する方法を次の例に示します。
Dim udpClient As New UdpClient()
' Creates an IP address to use to join and drop the multicast group.
Dim multicastIpAddress As IPAddress = IPAddress.Parse("239.255.255.255")
Try
' The packet dies after 50 router hops.
udpClient.JoinMulticastGroup(multicastIpAddress, 50)
Catch e As Exception
Console.WriteLine(e.ToString())
End Try
[C#]
UdpClient udpClient = new UdpClient();
// Creates an IPAddress to use to join and drop the multicast group.
IPAddress multicastIpAddress = IPAddress.Parse("239.255.255.255");
try{
// The packet dies after 50 router hops.
udpClient.JoinMulticastGroup(multicastIpAddress, 50);
}
catch ( Exception e ){
Console.WriteLine( e.ToString());
}
[C++]
UdpClient* udpClient = new UdpClient();
// Creates an IPAddress to use to join and drop the multicast group.
IPAddress* multicastIpAddress = IPAddress::Parse(S"239.255.255.255");
try{
// The packet dies after 50 router hops.
udpClient->JoinMulticastGroup(multicastIpAddress, 50);
}
catch ( Exception* e ){
Console::WriteLine( e->ToString());
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
参照
UdpClient クラス | UdpClient メンバ | System.Net.Sockets 名前空間 | UdpClient.JoinMulticastGroup オーバーロードの一覧 | DropMulticastGroup