httpdns_task.lua 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --[[
  2. @module httpdns_task
  3. @summary httpdns 功能模块
  4. @version 1.0
  5. @date 2025.10.29
  6. @author 拓毅恒
  7. @usage
  8. 用法实例
  9. 启动 HTTPDNS 功能
  10. - 运行 httpdnstask 任务,等待网络就绪后循环查询域名。
  11. - 示例中分别使用阿里DNS和腾讯DNS解析 “air32.cn” 与 “openluat.com”。
  12. - 解析结果通过 log.info 打印到串口。
  13. 注:本demo无需额外配置,直接在 main.lua 中 require "httpdns_task" 即可加载运行。
  14. ]]
  15. httpdns = require "httpdns"
  16. local function httpdnstask()
  17. -- 如果当前时间点设置的默认网卡还没有连接成功,一直在这里循环等待
  18. while not socket.adapter(socket.dft()) do
  19. log.warn("httpdns", "wait IP_READY", socket.dft())
  20. -- 在此处阻塞等待默认网卡连接成功的消息"IP_READY"
  21. -- 或者等待1秒超时退出阻塞等待状态
  22. sys.waitUntil("IP_READY", 1000)
  23. end
  24. -- 检测到了IP_READY消息
  25. log.info("httpdns", "recv IP_READY", socket.dft())
  26. log.info("已联网")
  27. while true do
  28. sys.wait(1000)
  29. -- 通过阿里DNS获取结果
  30. local ip = httpdns.ali("air32.cn")
  31. log.info("httpdns", "air32.cn", ip)
  32. -- 通过腾讯DNS获取结果
  33. local ip = httpdns.tx("openluat.com")
  34. log.info("httpdns", "openluat.com", ip)
  35. end
  36. end
  37. sys.taskInit(httpdnstask)