Qt文档阅读笔记-QHostInfo官方解析与实例(根据Host获取IP)
官方解析
QHostInfo提供了一个静态方法获取主机名;
QHostInfo中有一个查找机制,可以根据IP找主机名,也可能工具主机名找IP,可以通过调用QHostInfo::lookupHost这个静态函数进行操作,这里要注意这里是异步发送的,后面将会稍微说明下!
如下例子:
// To find the IP address of qt-project.orgQHostInfo::lookupHost("qt-project.org",this, SLOT(printResults(QHostInfo)));// To find the host name for 4.2.2.1QHostInfo::lookupHost("4.2.2.1",this, SLOT(printResults(QHostInfo)));
addresses可以得到这个主机的所有IP(比如www.baidu.com在北京,就会有2个IP与之对应)
如果出现错误,可以打印错误,如下代码:
QHostInfo info = QHostInfo::fromName("qt-project.org");
注意:如果要发送大量的数据,获取主机名,或IP,调用槽函数的顺序将会不同,这个将会在另外一篇博文中给出(获取局域网中使用了的IP,以及主机名)
博主例子
这里只对官方实例进行补充:
程序运行截图如下:
程序结构如下:
源码如下:
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
class QHostInfo;
QT_END_NAMESPACEnamespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected slots:void lookUp(const QHostInfo &host);private:Ui::Widget *ui;
};#endif // WIDGET_H
main.cpp
#include "widget.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QHostInfo>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);QHostInfo::lookupHost("www.baidu.com", this, SLOT(lookUp(QHostInfo)));
}Widget::~Widget()
{delete ui;
}void Widget::lookUp(const QHostInfo &host)
{if(host.error() != QHostInfo::NoError){qDebug() << "Lookup failed: " << host.errorString();return;}const auto addresses = host.addresses();for(const QHostAddress &address : addresses){qDebug() << "address:" << address.toString() << " hostname:" << host.hostName();}
}
程序打包下载:
https://github.com/fengfanchen/Qt/tree/master/QHostInfoLookupDemo
Qt文档阅读笔记-QHostInfo官方解析与实例(根据Host获取IP)相关推荐
- Qt文档阅读笔记-QSet官方解析及实例
目录 官方解析 博主栗子 官方解析 QSet类是一个模板类,他是一个哈希表集合. QSet<T>是Qt的一个普通容器类.QSet存储的值是不指明顺序的,QSet对这些值提供了快速检索的功能 ...
- Qt文档阅读笔记-QtWebApp官方解析与实例(使用QtWebApp搭建HTTP服务器)
目录 官方解析 博主例子 官方解析 QtWepApp是一个C++的http服务器,受到了java Servlets的启发,因为是Qt写的,所以有跨平台的支持. QtWebApp包含如下的组成部分: ...
- Qt文档阅读笔记-QTcpServer官方解析与实例(使用QSocket创建简单的HTTP服务器)
目录 官方解析 博主例子(做一个简单的HTTP服务器) 本例子中HTTP协议关键点 官方解析 QTcpServer类,提供TCP服务的基础: 这个类接受TCP连接,可以指定一个端口,也可以让其自动一个 ...
- Qt文档阅读笔记-QWebPage官方解析与实例
目录 官方解析 博主例子 源码下载地址 官方解析 QWebPage提供一个视图对象和一个web页面: QWebPage提供了web页面的内容,各种设置(是否支持JavaScript等)和连接,它与QW ...
- Qt文档阅读笔记-QWebView官方解析与实例
目录 背景 官方解析 博主例子 背景 最近发现某Qt项目,出现的效果杠杆的,在看某一小功能的时候,发现有个echart的东西,百度了发现,真的是一个新大陆,Qt加web编程,贼吉尔可怕. 在此发现使用 ...
- Qt文档阅读笔记-Q_CLASSINFO官方解析与实例
官方解析 Q_CLASSINFO 这个宏为类提供额外的信息,要想获取这个Q_CLASSINFO这个信息要使用QObject::metaObject().Qt在Active Qt,Qt D-BUS以及Q ...
- Qt文档阅读笔记-stackUnder官方解析与实例
目录 官方解析 博主例子 官方解析 这里可以配合raise()和lower()这两个函数来使用! 博主例子 用2个label,点击谁谁就浮在界面的最上面,很简单的代码,程序运行截图如下: 源码如下: ...
- Qt文档阅读笔记-QPropertyAnimation官方解析及实例
目录 官方解析 博主例子 官方解析 QPropertyAnimation QPropertyAnimation类为Qt属性提供动画. QPropertyAnimation类可以修改Qt属性,从而达到动 ...
- Qt文档阅读笔记-QNetworkAccessManager官方解析与实例
目录 官方解析 博主例子 官方解析 QNetworkAccessMangager类运行应用程序回复和接收网络包. QNetworkAccessManager是一套API库,可以发包,设置代理,内存配置 ...
最新文章
- 4月书讯:迟来的告白
- Remote Direct Memory Access (RDMA)
- python常用的集成开发环境和编辑器有哪些_常用的几款Python集成开发环境或者编辑器详解...
- 小米澄清传闻:不存在跨境转移利润及逃避缴纳税款行为
- Bing空间数据服务
- 稳定云服务器出租_云主机与独立服务器有哪些不同
- ubuntu16.04下安装NS-2.35以及对simple例的理解
- linux词语大全,简单词语大全二字学习软件-简单词语大全四字下载v1.5.3-Linux公社...
- Postman怎么用?
- 建立书签链接的html语言,HTML建立超链接
- 毕业论文可能用到的一些东西
- jwplayer android m3u8,播放上jwplayer M3U8文件,而RTMP
- 分享一个AUTO uninstaller|AUTOCAD 安装失败解决方案
- 手机处理器天梯图2021
- TLC5615模数转换锯齿波仿真实验(Arduino)
- 轻松查询多个中通速递发出物流中含有某个城市的单号
- 一脸懵逼学习Hadoop-HA机制(以及HA机制的配置文件,测试)
- 除尘机器人毕业_一种除尘机器人的制作方法
- 怎么一心多用高效处理工作琐事?用敬业签同时处理多个任务
- 【janus 】openresty +janus