gpt4 book ai didi

python - twisted epollreactor 是否使用非阻塞 dns 查找?

转载 作者:行者123 更新时间:2023-11-28 22:55:36 26 4
gpt4 key购买 nike

很明显,它会使用扭曲的名称 api 而不是任何阻塞方式来解析主机名。但是在源代码中挖掘,我一直无法找到名称解析发生的地方。有人可以指出主机解析发生的相关源代码(例如,当尝试执行 connectTCP 时)。我真的需要确保 connectTCP 不会使用阻塞 DNS 解析。

最佳答案

似乎很明显,不是吗?

不幸的是:

  1. 名称解析并不总是以显而易见的方式配置。您认为您只需要阅读 /etc/resolv.conf 吗?即使在 Linux 和 DNS 的特定情况下,您也可能必须在任意数量的文件中查找名称服务器。
  2. 名称解析比 DNS 复杂得多。您必须执行 mDNS 解析,可能会查找一些 LDAP 计算机记录,然后您必须遵守本地配置,规定这些之间的顺序,例如 /etc/nsswitch.conf
  3. 名称解析不会通过标准或有用的非阻塞 API 公开。甚至 glibc 特定的 getaddrinfo_a通过 SIGIO 公开其非阻塞性,而不仅仅是您可以查看的文件描述符。这意味着,like POSIX AIO ,它可能只是你背后的内核线程。

出于这些原因,除其他外,Twisted 默认使用仅在线程中调用 gethostbyname 的解析器。

但是,如果您知道对于您的应用程序,使用仅 DNS 主机名解析是合适的,并且您希望使用 twisted.names 而不是您的平台解析器 - 换句话说,如果规模对你来说比深奥的名称解析用例更重要 - 支持。你可以install一个resolver来自 twisted.names.client到 react 器上,appropriately configured for your application所有 future 的内置名称解析都将使用该解析器进行。

关于python - twisted epollreactor 是否使用非阻塞 dns 查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16716049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com