Roson的Qt之旅 #119 QNetworkAddressEntry详细介绍
CSDN话题挑战赛第2期
参赛话题:Qt应用程序开发
1.概述
QNetworkAddressEntry类存储了一个网络接口所支持的IP地址,以及其相关的网络掩码和广播地址。
每个网络接口可以包含零个或多个IP地址,这些地址又可以与一个掩码和/或一个广播地址相关联(取决于操作系统的支持)。
这个类代表一个这样的组。
2.成员函数文档
QNetworkAddressEntry::QNetworkAddressEntry()
构建一个空的QNetworkAddressEntry对象。
QNetworkAddressEntry::QNetworkAddressEntry( const QNetworkAddressEntry &other)
构建一个QNetworkAddressEntry对象,它是other对象的副本。
QNetworkAddressEntry::~QNetworkAddressEntry()
销毁此QNetworkAddressEntry对象。
QHostAddress QNetworkAddressEntry::broadcast() const
返回与IPv4地址和网络掩码相关的广播地址。它通常可以通过将网络掩码包含0的IP地址位设置为1而得到。(换句话说,通过将IP地址与网络掩码的倒数进行bitwise-OR。)
对于IPv6地址来说,这个成员总是空的,因为在该系统中,广播的概念已经被放弃,转而使用组播。特别是,对应于本地网络中所有节点的主机组可以通过 "all-nodes "特殊组播组(地址FF02::1)到达。
另请参见setBroadcast()。
QHostAddress QNetworkAddressEntry::ip() const
该函数返回在一个网络接口中发现的一个IPv4或IPv6地址。
也请参见setIp()。
QHostAddress QNetworkAddressEntry::netmask() const
返回与该IP地址相关的网络掩码。网络掩码以IP地址的形式表示,如255.255.0.0。
对于IPv6地址,前缀长度被转换为一个地址,其中设置为1的位数等于前缀长度。对于一个64位的前缀长度(最常见的值),网络掩码将被表示为一个持有FFF:FFF:FFF:FFF:FFF:的QHostAddress。
另请参见setNetmask()和prefixLength()。
int QNetworkAddressEntry::prefixLength() const
返回这个IP地址的前缀长度。前缀长度与网络掩码中设置为1的位数相匹配(见netmask())。对于IPv4地址,该值在0到32之间。对于IPv6地址,它包含在0到128之间,是表示地址的首选形式。
如果不能确定前缀长度,该函数返回-1(即netmask()返回空QHostAddress())。
这个函数在Qt 4.5中引入。
另请参见setPrefixLength()和netmask()。
void QNetworkAddressEntry::setBroadcast(const QHostAddress &newBroadcast)
将此QNetworkAddressEntry对象的广播IP地址设置为newBroadcast。
也请看broadcast()。
void QNetworkAddressEntry::setIp(const QHostAddress &newIp)
将QNetworkAddressEntry对象包含的IP地址设置为newIp。
也见ip()。
void QNetworkAddressEntry::setNetmask(const QHostAddress &newNetmask)
将此QNetworkAddressEntry对象包含的网络掩码设置为newNetmask。设置网络掩码的同时也设置了前缀的长度以匹配新的网络掩码。
参见netmask()和setPrefixLength()。
void QNetworkAddressEntry::setPrefixLength(int length)
将此IP地址的前缀长度设置为length。length的值对于这种类型的IP地址必须是有效的:对于IPv4地址在0到32之间,对于IPv6地址在0到128之间。设置为任何无效的值都相当于设置为-1,这意味着 "没有前缀长度"。
设置前缀长度的同时也设置了网络掩码(见netmask())。
这个函数是在Qt 4.5中引入的。
另见prefixLength()和setNetmask()。
void QNetworkAddressEntry::swap(QNetworkAddressEntry &other)
将这个网络地址条目实例与另一个交换。这个函数非常快,而且从不失败。
这个函数在Qt 5.0中被引入。
bool QNetworkAddressEntry::operator!=( const QNetworkAddressEntry &other) const
如果此网络地址条目与其他条目不同,则返回true。
QNetworkAddressEntry &QNetworkAddressEntry::operator=(QNetworkAddressEntry &&other)
移动分配运算符。
QNetworkAddressEntry &QNetworkAddressEntry::operator=(const QNetworkAddressEntry &other)
制作QNetworkAddressEntry对象other的副本。
bool QNetworkAddressEntry::operator==(Const QNetworkAddressEntry &other) const
如果此网络地址条目与其他条目相同,则返回true。