- java.lang.Object
-
- java.nio.channels.MembershipKey
-
public abstract class MembershipKey extends Object
代表互联网协议(IP)组播组成员身份的令牌。会员密钥可以表示用于接收发送到组的所有数据报的成员资格,或者它可以是源特定的 ,这意味着它表示仅从特定源地址接收数据报的成员资格。 会员密钥是否是特定于源的可以通过调用其
sourceAddress方法来确定。会员密钥在创建时有效,并保持有效,直到通过调用
drop方法删除会员资格,或者该通道关闭。 会员密钥的有效性可以通过调用其isValid方法来测试。在会员密钥不是源特定且底层操作系统支持源过滤的情况下,可以使用
block和unblock方法来阻止或解除来自特定源地址的组播数据报。- 从以下版本开始:
- 1.7
- 另请参见:
-
MulticastChannel
-
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedMembershipKey()初始化此类的新实例。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 abstract MembershipKeyblock(InetAddress source)阻止来自给定源地址的组播数据报。abstract MulticastChannelchannel()返回创建此成员资格密钥的通道。abstract voiddrop()删除会员资格abstract InetAddressgroup()返回创建此成员资格密钥的多播组。abstract booleanisValid()告知这个会员资格是否有效。abstract NetworkInterfacenetworkInterface()返回创建此会员密钥的网络接口。abstract InetAddresssourceAddress()如果此成员资格密钥是源特定的,则返回源地址,如果此成员资格不是源特定的,则返回null。abstract MembershipKeyunblock(InetAddress source)从以前使用block方法阻止的给定源地址中解除阻塞多播数据报。
-
-
-
方法详细信息
-
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)
从以前使用block方法阻止的给定源地址解除阻塞多播数据报。- 参数
-
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
-
-