qhostinfo 类为主机名查找提供了静态函数。
qhostinfo 利用操作系统提供的查询机制来查询与特定主机名相关联的主机的 ip 地址,或者与一个ip地址相关联的主机名。这个类提供了两个静态的便利函数:一个以异步方式工作,一旦找到主机就发射一个信号;另一个以阻塞方式工作,并且最终返回一个 qhostinfo 对象。
要使用异步方式查询主机的 ip 地址,调用 lookuphost() 即可,该函数包含 3 个参数,依次是:主机名/ ip 地址、接收的对象、接收的槽函数,并返回一个查询id。以查询id为参数,通过调用 aborthostlookup() 函数的来中止查询。
当获得查询结果后就会调用槽函数,查询结果被存储到 qhostinfo 对象中。可通过调用 addresses() 函数来获得主机的 ip 地址列表,同时可通过调用 hostname() 函数来获得查询的主机名。
<a href="#%e7%ae%80%e8%bf%b0">简述</a>
<a href="#%e6%9f%a5%e8%af%a2%e6%9c%ac%e6%9c%ba%e4%b8%bb%e6%9c%ba%e5%90%8d">查询本机主机名</a>
<a href="#%e6%9f%a5%e8%af%a2%e4%b8%bb%e6%9c%ba%e4%bf%a1%e6%81%af">查询主机信息</a>
<a href="#%e5%bc%82%e6%ad%a5%e6%96%b9%e5%bc%8f">异步方式</a>
<a href="#%e9%98%bb%e5%a1%9e%e6%96%b9%e5%bc%8f">阻塞方式</a>
<a href="#%e4%b8%ad%e6%ad%a2%e6%9f%a5%e8%af%a2">中止查询</a>
<a href="#%e9%94%99%e8%af%af%e5%a4%84%e7%90%86">错误处理</a>
<a href="#%e6%9b%b4%e5%a4%9a%e5%8f%82%e8%80%83">更多参考</a>
输出结果:
local host name:”wang-pc”
使用 lookuphost() ,实际的查询在一个单独的线程中完成,利用操作系统的方法来执行名称查找。
根据主机名查询主机信息
found ipv4 address: “5.254.113.102” found ipv4 address: “178.32.152.214”
根据 ip 查询主机信息
found hostname: “webredirects.cloudns.net”
如果要使用阻塞查找使用 qhostinfo::fromname() 函数:
这种情况下,名称查询的执行与调用者处于相同的线程中。这对于非 gui 应用程序或在一个单独的、非 gui 线程中做名称查找是比较有用的(在 gui 线程中调用这个函数可能会导致用户界面冻结)。
lookuphost() 查询主机信息时,会返回一个查询 id,以此 id 为参数,通过调用 aborthostlookup() 来中止查询:
如果查询失败,error() 返回发生错误的类型,errorstring() 返回一个能够读懂的查询错误描述。
枚举 qhostinfo::hostinfoerror:
常量
值
描述
qhostinfo::noerror
查找成功
qhostinfo::hostnotfound
1
没有发现主机对应的ip地址
qhostinfo::unknownerror
2
未知错误
<a href="http://blog.csdn.net/liang19890820/article/details/52249509">qt之网络编程</a>
<a href="http://blog.csdn.net/liang19890820/article/details/52273986">qt之qhostaddress</a>
<a href="http://blog.csdn.net/liang19890820/article/details/52276646">qt之qnetworkaddressentry</a>
<a href="http://blog.csdn.net/liang19890820/article/details/50775052">qt之qnetworkinterface</a>