QHostInfo 详细介绍

194 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情

前言

在我们需要读取本机的一些基本信息,或者查找主机的ip等等,我们可以使用 QHostInfo类,在使用此方法时,必须在Pro文件中加入QT       += network这句,否则该类会出现加载不成功的情况

接下来是一些常态的方法

QHostInfo::localHostName(): 通过这条语句获取本机的主机名,如果我们需要获取主机的ip地址 必须先知道他的主机名称 他的返回值为字符串

QHostInfo::fromName(QString &name): 这句就是上面所提到的,通过主机名获取IP地址。两者的关系为上可以有下,使用下必须有上 QHostInfo::lookupHost():这条语句可以通过一个主机名,以异步方式查找这个主机的IP地址。但是他的使用方法比较特殊。

 

QHostInfo::lookupHost(hostname,this,SLOT(lookedUpHostInfo(QHostInfo)));

 

第一个参数是所需要查询的名称,例如www.baidu.com

  后面两个参数于connect方法是一样的  但是这里要注意:这里的槽函数必须是在private slots: 下 在我们平时用槽函数的时候,不一定必须写在他的下面,这就是和connect的差异 如果不把他写在slot下,会导致

QObject::connect: No such slot MainWindow::lookedUpHostInfo(QHostInfo) in ..\sample14_1\mainwindow.cpp:92

QObject::connect: (receiver name: 'MainWindow')

这个错误  并且查好多文章都没有解决。是在看着视频一步一步跟着做餐发现是这儿的问题。  

QHostInfo::localDomainName():用于返回本机的DNS域名。返回值为string

QList<QHostAddress> addressList = hostInfo.addresses();通过这句可以获得当前主机所关联的ip地址列表

总结

以上只是QHostInfo 类的一小部分,我所列出来的仅仅是我是用,并且可以正确使用的部分。如有不对的地方,请各位指教!