最后更新:2022-04-04 03:06:13 手机定位技术交流文章
该设备以两种方式联网:在测试期间,局域网和WIFI连接在两个不同的路由器上;当两个网络(局域网或WIFI)被交换时,该设备的mqtt应用程序失败(服务器地址是一个域名)。
初始检查时, mqtt 程序重新启动, 并且可以正常连接。 但是, mqtt 的网格- 重新连接功能没有被使用 。 最后读取 mqtt 源头后发现它是一个呼叫 。
getaddrinfo如果函数失败,您可以使用 DNS 确定其位置。
当 DNS 分辨率失败时, 将重新装入 DNS 添加到 mqtt 回转中 。res_init()功能、问题固定并成功重新连接
如果在程序中调用getaddrinfo和getnameinfo为了检索域名的IP, 在同一程序中, 先前成功获取的结果将被保存, 适当的 IP 下次可以解构, 即使残疾 DNS 和系统 DNS 缓存在下一次呼叫前已经清除 。res_init()函数以清除它们为自己预留的缓存
查找默认域名和 IP 地址 。
标准 C 库 (libc.a)
获取操作名称服务器默认域名和互联网地址的 conf 文件 。
如果文件 / etc/ resolv. conf 不存在。对于名称解析, Res_ init 函数试图使用本地/ etc/ 主机文件 。如果系统缺少域名服务器,Conf 文件/etc/resolv.conf 不应该存在 。无论系统是否使用名称服务器,机器上也必须有/ETC/主机文件。在这种情况下,执行系统所需的主机代号应包含在本文件中。即使名称服务器不运行 。
Res_init 子常规是构成冷凝器的多个常规之一。解析器是一系列将域名转换为互联网地址的例行程序集。文件/文件/内含/内含/索尔夫h,_res 的结构在本文件中定义。域名信息根据Res_init 函数存储在(_res)结构中。_res 结构的默认设置受到三个环境变量的影响:LOCADOMAIN、RES_TIMEOUT和RES_RETRY。
使用 Res_init 函数的任何程序都必须在编译过程中将 _BSD 宏设置为一定值。有效值为43和44。所有应用程序还必须包括 BSD libbsd.a 仓库。
| 路径 | 描述 |
|---|---|
| /etc/resolv.conf | 包括名称服务器和域名。 |
| /etc/hosts | 网络主机的名称和地址。 此文件用于将主机名转换为互联网地址 。 |
https://blog.csdn.net/weixin_39530839/article/details/116778660?utm_source=app&app_version=5.3.0
https://www.ibm.com/docs/zh/aix/7.3?topic=r-res-init-subroutine
本文由 在线网速测试 整理编辑,转载请注明出处。