當前位置: 首頁>>代碼示例>>Python>>正文


Python pycares.Channel方法代碼示例

本文整理匯總了Python中pycares.Channel方法的典型用法代碼示例。如果您正苦於以下問題:Python pycares.Channel方法的具體用法?Python pycares.Channel怎麽用?Python pycares.Channel使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在pycares的用法示例。


在下文中一共展示了pycares.Channel方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: initialize

# 需要導入模塊: import pycares [as 別名]
# 或者: from pycares import Channel [as 別名]
def initialize(self, io_loop=None):
        self.io_loop = io_loop or IOLoop.current()
        self.channel = pycares.Channel(sock_state_cb=self._sock_state_cb)
        self.fds = {} 
開發者ID:DirceuSilvaLabs,項目名稱:noc-orchestrator,代碼行數:6,代碼來源:caresresolver.py

示例2: resolve_cares

# 需要導入模塊: import pycares [as 別名]
# 或者: from pycares import Channel [as 別名]
def resolve_cares(name):
    # create new c-ares channel
    careschan = pycares.Channel(timeout=DNS_TIMEOUT, tries=1)

    # if we don't get a response we return the default value
    result = Resultholder()
    result.value = DNS_TIMEOUT_VALUE

    def setresult_cb(res, error):
        # ignore error and just take first result ip (randomized anyway)
        if res and res.addresses:
            result.value = res.addresses[0]

    # resolve with cb
    careschan.gethostbyname(name, socket.AF_INET, setresult_cb)

    # now do the actual work
    readfds, writefds = careschan.getsock()
    canreadfds, canwritefds, _ = select.select(readfds, writefds, [],
                                               DNS_TIMEOUT)
    for rfd in canreadfds:
        careschan.process_fd(rfd, -1)

    # if the query did not succeed, setresult was not called and we just
    # return result destroy the channel first to not leak anything
    careschan.destroy()
    return result.value

# workaround until py3 nonlocal (for c-ares and gevent) 
開發者ID:ctxis,項目名稱:CAPE,代碼行數:31,代碼來源:dns.py


注:本文中的pycares.Channel方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。