モジュール java.base
パッケージ java.nio.channels

クラスMembershipKey

java.lang.Object
java.nio.channels.MembershipKey

public abstract class MembershipKey
extends Object
IP (Internet Protocol)マルチキャスト・グループのメンバーシップを表すトークン。

メンバーシップ・キーは、グループに送信されるすべてのデータグラムを受信するためのメンバーシップを表すか、特定のソース・アドレスからのデータグラムのみを受信するメンバーシップを表すことを意味するソース固有です。 メンバーシップ・キーがソース固有かどうかは、sourceAddressメソッドの呼出しによって判断できます。

メンバーシップ・キーは作成時に有効であり、dropメソッドの呼出しによってメンバーシップがドロップされるか、チャネルがクローズされるまで有効なままです。 メンバーシップ・キーの有効性は、isValidメソッドを呼び出すことによってテストできます。

メンバーシップ・キーがソース固有ではなく、基本となるオペレーティング・システムでソースのフィルタリングがサポートされる場合、blockメソッドとunblockメソッドを使用して、特定のソース・アドレスからのマルチキャスト・データグラムをブロックまたはブロック解除することができます。

導入されたバージョン:
1.7
関連項目:
MulticastChannel
  • コンストラクタのサマリー

    コンストラクタ
    修飾子 コンストラクタ 説明
    protected MembershipKey()
    このクラスの新しいインスタンスを初期化します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    abstract MembershipKey block​(InetAddress source)
    指定されたソース・アドレスからマルチキャスト・データグラムをブロックします。
    abstract MulticastChannel channel()
    作成されたこのメンバーシップ・キーのチャネルを返します。
    abstract void drop()
    メンバーシップをドロップします。
    abstract InetAddress group()
    作成されたこのメンバーシップ・キーのマルチキャスト・グループを返します。
    abstract boolean isValid()
    このメンバーシップが有効であるかどうかを判断します。
    abstract NetworkInterface networkInterface()
    作成されたこのメンバーシップ・キーのネットワーク・インタフェースを返します。
    abstract InetAddress sourceAddress()
    このメンバーシップ・キーがソース固有である場合はソース・アドレスを返し、このメンバーシップがソース固有でない場合はnullを返します。
    abstract MembershipKey unblock​(InetAddress source)
    指定されたソース・アドレスから、blockメソッドを使用して以前にブロックされたマルチキャスト・データグラムをブロック解除します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • MembershipKey

      protected MembershipKey()
      このクラスの新しいインスタンスを初期化します。
  • メソッドの詳細

    • isValid

      public abstract boolean isValid()
      このメンバーシップが有効であるかどうかを判断します。

      マルチキャスト・グループ・メンバーシップは作成時に有効であり、dropメソッドの呼出しによってメンバーシップがドロップされるか、チャネルがクローズされるまで有効なままです。

      戻り値:
      メンバーシップ・キーが有効な場合はtrue、それ以外の場合はfalse
    • drop

      public abstract void drop()
      メンバーシップをドロップします。

      メンバーシップ・キーがすべてのデータグラムを受信するためのメンバーシップを表す場合、メンバーシップはドロップされ、チャネルはグループに送信されるデータグラムを受信しなくなります。 メンバーシップ・キーがソース固有の場合、チャネルは、そのソース・アドレスからグループに送信されるデータグラムを受信しなくなります。

      メンバーシップは、ドロップされたあとでも、グループに送信されるデータグラムを受信することがあります。 これは、データグラムがソケットの受信バッファに受信されるのを待機している場合に発生します。 メンバーシップのドロップ後に、チャネルはグループに再度参加することがあり、この場合は新しいメンバーシップ・キーが返されます。

      返されたときに、このメンバーシップ・オブジェクトは無効になります。 マルチキャスト・グループ・メンバーシップがすでに無効になっている場合、このメソッドを呼び出しても何の影響もありません。 いったん無効になったマルチキャスト・グループ・メンバーシップは、永久に無効なままです。

    • block

      public abstract MembershipKey block​(InetAddress source) throws IOException
      指定されたソース・アドレスからマルチキャスト・データグラムをブロックします。

      このメンバーシップ・キーがソース固有ではなく、基本となるオペレーティング・システムでソースのフィルタリングがサポートされる場合、このメソッドは、指定したソース・アドレスからのマルチキャスト・データグラムをブロックします。 指定したソース・アドレスがすでにブロックされている場合、このメソッドは何の影響もありません。 ソース・アドレスのブロック後でも、そのソースからデータグラムを受信することがあります。 これは、データグラムがソケットの受信バッファに受信されるのを待機している場合に発生します。

      パラメータ:
      source - ブロックするソース・アドレス
      戻り値:
      このメンバーシップ・キー
      例外:
      IllegalArgumentException - sourceパラメータがユニキャスト・アドレスではないか、マルチキャスト・グループと同じアドレス・タイプではない場合
      IllegalStateException - このメンバーシップ・キーがソース固有であるか、無効になっている場合
      UnsupportedOperationException - 基本となるオペレーティング・システムでソースのフィルタリングがサポートされない場合
      IOException - 入出力エラーが発生した場合
    • unblock

      public abstract MembershipKey unblock​(InetAddress source)
      指定されたソース・アドレスから、blockメソッドを使用して以前にブロックされたマルチキャスト・データグラムをブロック解除します。
      パラメータ:
      source - ブロック解除するソース・アドレス
      戻り値:
      このメンバーシップ・キー
      例外:
      IllegalStateException - 指定したソース・アドレスが現在ブロックされていないか、メンバーシップ・キーが無効になっている場合
    • channel

      public abstract MulticastChannel channel()
      作成されたこのメンバーシップ・キーのチャネルを返します。 このメソッドは、メンバーシップが無効になったあともチャネルを返します。
      戻り値:
      そのチャネル
    • group

      public abstract InetAddress group()
      作成されたこのメンバーシップ・キーのマルチキャスト・グループを返します。 このメソッドは、メンバーシップが無効になったあともグループを返します。
      戻り値:
      そのマルチキャスト・グループ
    • networkInterface

      public abstract NetworkInterface networkInterface()
      作成されたこのメンバーシップ・キーのネットワーク・インタフェースを返します。 このメソッドは、メンバーシップが無効になったあともネットワーク・インタフェースを返します。
      戻り値:
      そのネットワーク・インタフェース
    • sourceAddress

      public abstract InetAddress sourceAddress()
      このメンバーシップ・キーがソース固有である場合はソース・アドレスを返し、このメンバーシップがソース固有でない場合はnullを返します。
      戻り値:
      このメンバーシップ・キーがソース固有の場合はソース・アドレス、それ以外の場合はnull