- java.lang.Object
-
- java.nio.channels.MembershipKey
-
public abstract class MembershipKey extends Object
表示Internet协议(IP)多播组成员身份的令牌。成员资格密钥可以表示接收发送给该组的所有数据报的成员资格,或者它可以是特定于源的 ,这意味着它表示仅从特定源地址接收数据报的成员资格。 可以通过调用其
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)
-
-
-
方法详细信息
-
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
- 如果发生I / O错误
-
unblock
public abstract MembershipKey unblock(InetAddress source)
- 参数
-
source
- 要取消阻止的源地址 - 结果
- 这个会员密钥
- 异常
-
IllegalStateException
- 如果当前未阻止给定的源地址或成员资格密钥不再有效
-
channel
public abstract MulticastChannel channel()
返回为其创建此成员资格密钥的通道。 即使会员资格变为invalid
,此方法仍将继续返回频道。- 结果
- 这个频道
-
group
public abstract InetAddress group()
返回为其创建此成员资格密钥的多播组。 即使成员资格变为invalid
,此方法仍将继续返回该组。- 结果
- 组播组
-
networkInterface
public abstract NetworkInterface networkInterface()
返回为其创建此成员资格密钥的网络接口。 即使成员资格变为invalid
,此方法仍将继续返回网络接口。- 结果
- 网络接口
-
sourceAddress
public abstract InetAddress sourceAddress()
如果此成员资格密钥是特定于源的,则返回源地址;如果此成员资格不是特定于源的,则返回null
。- 结果
-
如果此成员资格密钥是特定于源的,
null
源地址,否则为null
-
-