package java.nio.channels;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.io.IOException;
/**
* A token representing the membership of an Internet Protocol (IP) multicast
* group.
*MembershipKey表示一个网络IP协议的多播分组成员信息token
* <p> A membership key may represent a membership to receive all datagrams sent
* to the group, or it may be [i]source-specific[/i], meaning that it
* represents a membership that receives only datagrams from a specific source
* address. Whether or not a membership key is source-specific may be determined
* by invoking its {@link #sourceAddress() sourceAddress} method.
*一个MembershipKey表示一个多播组成员接受发送到多播组的报文的关系,如果源地址确定,
表示直接接受来至源地址的报文。我们可以通过#sourceAddress来判断源地址是否确定。
* <p> A membership key is valid upon creation and remains valid until the
* membership is dropped by invoking the {@link #drop() drop} method, or
* the channel is closed. The validity of the membership key may be tested
* by invoking its {@link #isValid() isValid} method.
*一个多播组成员关系在创建时,是有效的,直到MembershipKey调用#drop方法,之前他都是有效。
我们可以调用#isValid()来判断其是否有效。
* <p> Where a membership key is not source-specific and the underlying operation
* system supports source filtering, then the {@link #block block} and {@link
* #unblock unblock} methods can be used to block or unblock multicast datagrams
* from particular source addresses.
*如果MembershipKey的源地址是不确定的,底层操作系统支持源地址过滤,调用#block和#unblock将会
阻塞和解除阻塞从源地址发送过来的报文
* @see MulticastChannel
*
* @since 1.7
*/
public abstract class MembershipKey {
/**
* Initializes a new instance of this class.
*/
protected MembershipKey() {
}
/**
* Tells whether or not this membership is valid.
*判断一个MembershipKey是否有效
* <p> A multicast group membership is valid upon creation and remains
* valid until the membership is dropped by invoking the {@link #drop() drop}
* method, or the channel is closed.
*一个多播组成员关系在创建时,是有效的,直到MembershipKey调用#drop方法,之前他都是有效。
* @return {@code true} if this membership key is valid, {@code false}
* otherwise
*/
public abstract boolean isValid();
/**
* Drop membership.
*丢弃组成员关系membership
* <p> If the membership key represents a membership to receive all datagrams
* then the membership is dropped and the channel will no longer receive any
* datagrams sent to the group. If the membership key is source-specific
* then the channel will no longer receive datagrams sent to the group from
* that source address.
*如果MembershipKey表示,MembershipKey接受所有报文,当drop方法调用时,通道不在接受
任何报文发送给多播组。如果MembershipKey的源地址是确定的,那么通道不在接受
任何报文发送给源地址的多播组。
* <p> After membership is dropped it may still be possible to receive
* datagrams sent to the group. This can arise when datagrams are waiting to
* be received in the socket's receive buffer. After membership is dropped
* then the channel may {@link MulticastChannel#join join} the group again
* in which case a new membership key is returned.
*在多播成员关系drop之后,仍有可能接受发送到多播组的报文。则个可能引起socket的接收
缓冲区的报文等待被接收。在多播成员关系drop之后,通道有可能调用MulticastChannel#join
方法加入分组,这样一个新的MembershipKey将会被创建返回。
* <p> Upon return, this membership object will be {@link #isValid() invalid}.
* If the multicast group membership is already invalid then invoking this
* method has no effect. Once a multicast group membership is invalid,
* it remains invalid forever.
drop多播成员关系drop之后,#isValid()方法将会返回fasle,即无效。如果MembershipKey已经无效,
则调用此方将没有任何影响。一旦多播关系为无效的,则永久无效。
*/
public abstract void drop();
/**
* Block multicast datagrams from the given source address.
*阻塞从源地址发送过来的多播报文
* <p> If this membership key is not source-specific, and the underlying
* operating system supports source filtering, then this method blocks
* multicast datagrams from the given source address. If the given source
* address is already blocked then this method has no effect.
* After a source address is blocked it may still be possible to receive
* datagams from that source. This can arise when datagrams are waiting to
* be received in the socket's receive buffer.
*如果MembershipKey的源地址是不确定的,底层操作系统支持源地址过滤,此方法将会
阻塞从源地址发送过来的多播报文。如果源地址已经被阻塞,再次调用任何影响。
在源地址阻塞后,仍有可能接受源地址的报文。则个可能引起socket的接收
缓冲区中的报文等待被接收。
* @param source
* The source address to block
*
* @return This membership key
*
* @throws IllegalArgumentException
* If the {@code source} parameter is not a unicast address or
* is not the same address type as the multicast group
* @throws IllegalStateException
* If this membership key is source-specific or is no longer valid
* @throws UnsupportedOperationException
* If the underlying operating system does not support source
* filtering
* @throws IOException
* If an I/O error occurs
*/
public abstract MembershipKey block(InetAddress source) throws IOException;
/**
* Unblock multicast datagrams from the given source address that was
* previously blocked using the {@link #block(InetAddress) block} method.
*解除从源地址发送过来多播报文的阻塞
* @param source
* The source address to unblock
*
* @return This membership key
*
* @throws IllegalStateException
* If the given source address is not currently blocked or the
* membership key is no longer valid
*/
public abstract MembershipKey unblock(InetAddress source);
/**
* Returns the channel for which this membership key was created. This
* method will continue to return the channel even after the membership
* becomes {@link #isValid invalid}.
*返回创建多播成员关系key的通道,在多播成员关系key无效时,仍返回通道
* @return the channel
*/
public abstract MulticastChannel channel();
/**
* Returns the multicast group for which this membership key was created.
* This method will continue to return the group even after the membership
* becomes {@link #isValid invalid}.
*返回创建多播关系key的多播分组。在多播成员关系key无效时,仍返回分组地址信息
* @return the multicast group
*/
public abstract InetAddress group();
/**
* Returns the network interface for which this membership key was created.
* This method will continue to return the network interface even after the
* membership becomes {@link #isValid invalid}.
*返回创建多播成员关系key的网络接口信息。在多播成员关系key无效时,仍返回网络接口信息
* @return the network interface
*/
public abstract NetworkInterface networkInterface();
/**
* Returns the source address if this membership key is source-specific,
* or {@code null} if this membership is not source-specific.
*如果多播成员关系key的源地址是确定的则返回相应的源地址,否则返回null
* @return The source address if this membership key is source-specific,
* otherwise {@code null}
*/
public abstract InetAddress sourceAddress();
}
//NetworkInterface
package java.net;
import java.util.Enumeration;
import java.util.NoSuchElementException;
import sun.security.action.*;
import java.security.AccessController;
/**
* This class represents a Network Interface made up of a name,
* and a list of IP addresses assigned to this interface.
* It is used to identify the local interface on which a multicast group
* is joined.
*
* Interfaces are normally known by names such as "le0".
*
* @since 1.4
*/
public final class NetworkInterface {
private String name;
private String displayName;
private int index;
private InetAddress addrs[];
private InterfaceAddress bindings[];
private NetworkInterface childs[];
private NetworkInterface parent = null;
private boolean virtual = false;
private static final NetworkInterface defaultInterface;
private static final int defaultIndex; /* index of defaultInterface */
}
分享到:
相关推荐
Jupyter-Notebook
考研公共课历年真题集-最新发布.zip
2006-2023年上市公司资产误定价Misp数据集(4.9万样本,含原始数据、代码及结果,最新).zip
Jupyter-Notebook
Jupyter-Notebook
100个Origin软件高效使用技巧大全-最新更新.zip
Jupyter-Notebook
煤矿感知数据联网接入规范 第2部分:重要设备
1、资源内容地址:https://blog.csdn.net/abc6838/article/details/143777985 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
KSSJ_CJ15-2023
全国电子地图行政区划道路水系数据-最新shp.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
全国乡镇级行政区划矢量数据2.0版-最新.zip
Jupyter-Notebook
Typora(version 1.2.3)导出 pdf 自定义水印的 frame.js 文件,详情可以查看:
【作品名称】:基于Java 实现的电脑鼠走迷宫的软件程序 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 迷宫地图生成算法的设计和实现 自动生成迷宫:根据迷宫生成算法自动生成一定复杂度的迷宫地图。 手动生成迷宫:根据文件中存储的固定数据生成迷宫地图。 单路径寻找算法的设计与实现:找出迷宫中一条单一的通路。 迷宫遍历算法的设计与实现:遍历迷宫中所有的可行路径。 最短路径计算算法的设计与实现:根据遍历结果,找出迷宫中所有通路中的最短通路。 (3)第二部分:界面展示部分 生成迷宫地图界面的设计与实现:根据生成的迷宫地图,用可视化的界面展现出来。 界面布局的设计与实现:根据迷宫程序的总体需求,设计和实现合理的界面布局。 相关迷宫生成过程和寻路算法在界面上的展现:将迷宫程序中的相关功能,跟界面合理结合,并采用一定的方法展 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。需要有一定的基础看懂代码,自行调试代码并解决报错,能自行添加功能修改代码。
基于Selenium前端自动化测试工具,对youtube和tiktok数据进行爬虫,可设置自己要爬取的内容和主题,快速便捷。
Jupyter-Notebook
gkt
Jupyter-Notebook