創(chuàng)建綁定到給定端口和地址的偵聽套接字。
返回套接字對(duì)象的列表(如果給定地址映射到多個(gè) IP 地址,則返回多個(gè)套接字,這對(duì)于混合使用 IPv4 和 IPv6 最常見)。
地址可以是 IP 地址或主機(jī)名。 如果是主機(jī)名,服務(wù)器將偵聽與該名稱關(guān)聯(lián)的所有 IP 地址。 Address 可以是空字符串或 None 以偵聽所有可用接口。 Family 可以設(shè)置為 ?socket.AF_INET
? 或 ?socket.AF_INET6
? 以限制 IPv4 或 IPv6 地址,否則將使用兩者(如果可用)。
?backlog
參數(shù)與 ?socket.listen()
的含義相同。
?flags
是 ?getaddrinfo
的 AI_* 標(biāo)志位掩碼,如 ?socket.AI_PASSIVE | socket.AI_NUMERICHOST
?
?reuse_port
?選項(xiàng)為列表中的每個(gè)套接字設(shè)置 ?SO_REUSEPORT
?選項(xiàng)。 如果您的平臺(tái)不支持此選項(xiàng),則會(huì)引發(fā) ValueError。
創(chuàng)建一個(gè)監(jiān)聽 unix 套接字。
如果具有給定名稱的套接字已經(jīng)存在,它將被刪除。 如果存在具有該名稱的任何其他文件,則會(huì)引發(fā)異常。
返回一個(gè)套接字對(duì)象(不是像 ?bind_sockets
這樣的套接字對(duì)象列表)
添加 ?IOLoop
事件處理程序以接受 ?sock
上的新連接。
當(dāng)一個(gè)連接被接受時(shí),?callback(connection, address)
?會(huì)被運(yùn)行(?connection
?是一個(gè)?socket
?對(duì)象,?address
?是連接另一端的地址)。 請(qǐng)注意,此簽名與用于 ?IOLoop
處理程序的回調(diào)?(fd,events)
?簽名不同。
返回一個(gè)可調(diào)用對(duì)象,調(diào)用該可調(diào)用對(duì)象時(shí),將刪除 ?IOLoop
事件處理程序并停止處理進(jìn)一步的傳入連接。
在 5.0 版中更改: ?io_loop
?參數(shù)(自 4.1 版以來已棄用)已被刪除。
在 5.0 版更改:返回一個(gè)可調(diào)用對(duì)象(之前沒有返回)。
如果給定的字符串是格式正確的 IP 地址,則返回 ?True
?。
支持 IPv4 和 IPv6。
可配置的異步 DNS 解析器接口。
默認(rèn)情況下,使用阻塞實(shí)現(xiàn)(簡單地調(diào)用 ?socket.getaddrinfo
?)。 可以使用 ?Resolver.configure
? 類方法選擇替代實(shí)現(xiàn):
Resolver.configure('tornado.netutil.ThreadedResolver')
Tornado 包含的這個(gè)接口的實(shí)現(xiàn)是
tornado.netutil.DefaultExecutorResolver
?tornado.netutil.BlockingResolver
?(已棄用)tornado.netutil.ThreadedResolver
?(已棄用)tornado.netutil.OverrideResolver
?tornado.platform.twisted.TwistedResolver
?tornado.platform.caresresolver.CaresResolver
?在 5.0 版更改: 默認(rèn)實(shí)現(xiàn)已從 ?BlockingResolver
更改為 ?DefaultExecutorResolver
?。
解析地址。
?host
參數(shù)是一個(gè)字符串,可以是主機(jī)名或文字 IP 地址。
返回一個(gè) ?Future
?,其結(jié)果是 (family, address) 對(duì)的列表,其中 address 是一個(gè)適合傳遞給 ?socket.connect
? 的元組(即 IPv4 的 ?(host, port)
? 對(duì);IPv6 可能存在其他字段)。 如果傳遞了回調(diào),它將在完成時(shí)將結(jié)果作為參數(shù)運(yùn)行。
引發(fā):?IOError
?– 如果地址無法解析。
在 4.4 版更改:標(biāo)準(zhǔn)化所有實(shí)現(xiàn)以引發(fā) ?IOError
?。
在 6.0 版更改: 回調(diào)參數(shù)已刪除。 請(qǐng)改用返回的可等待對(duì)象。
關(guān)閉解析器,釋放所有使用的資源。
使用 ?IOLoop.run_in_executor
? 的解析器實(shí)現(xiàn)。
使用 ?concurrent.futures.Executor
? 的解析器實(shí)現(xiàn)。
當(dāng)您需要對(duì)正在使用的執(zhí)行器進(jìn)行額外控制時(shí),請(qǐng)使用它而不是 ?ThreadedResolver
?。
除非?close_resolver=False
?,否則當(dāng)?resolver
?關(guān)閉時(shí)?executor
?會(huì)被關(guān)閉; 如果您想在其他地方重用相同的執(zhí)行器,請(qǐng)使用它。
在 5.0 版中更改: ?io_loop
?參數(shù)(自 4.1 版以來已棄用)已被刪除。
5.0 版后已棄用:默認(rèn)解析器現(xiàn)在使用 ?IOLoop.run_in_executor
?; 使用它而不是此類。
默認(rèn)解析器實(shí)現(xiàn),使用 ?socket.getaddrinfo
?。
?IOLoop
將在解析期間被阻止,盡管回調(diào)將在下一次 ?IOLoop
迭代之前運(yùn)行。
5.0 版后已棄用:默認(rèn)解析器現(xiàn)在使用 ?IOLoop.run_in_executor
?; 使用它而不是此類。
多線程非阻塞解析器實(shí)現(xiàn)。
需要安裝 ?concurrent.futures
? 包(自 Python 3.2 起在標(biāo)準(zhǔn)庫中可用,可在舊版本中使用 ?pip install futures
? 安裝)。
線程池大小可以配置為:
Resolver.configure('tornado.netutil.ThreadedResolver',
num_threads=10)
在 3.1 版更改: 所有 ?ThreadedResolver
共享一個(gè)線程池,其大小由要?jiǎng)?chuàng)建的第一個(gè)設(shè)置。
5.0 版后已棄用:默認(rèn)解析器現(xiàn)在使用 ?IOLoop.run_in_executor
?; 使用它而不是此類。
使用覆蓋映射包裝解析器。
這可用于進(jìn)行本地 DNS 更改(例如用于測(cè)試),而無需修改系統(tǒng)范圍的設(shè)置。
映射可以是三種格式:
{
# Hostname to host or ip
"example.com": "127.0.1.1",
# Host+port to host+port
("login.example.com", 443): ("localhost", 1443),
# Host+port+address family to host+port
("login.example.com", 443, socket.AF_INET6): ("::1", 1443),
}
在 5.0 版更改: 添加了對(duì)主機(jī)端口系列三元組的支持。
嘗試將 ?ssl_options
字典轉(zhuǎn)換為 ?SSLContext
對(duì)象。
?ssl_options
字典包含要傳遞給 ?ssl.wrap_socket
? 的關(guān)鍵字。 在 Python 2.7.9+ 中,可以改用 ?ssl.SSLContext
? 對(duì)象。 此函數(shù)將dict
表單轉(zhuǎn)換為其 ?SSLContext
等效項(xiàng),并且可以在接受這兩種表單的組件需要升級(jí)到 ?SSLContext
?版本以使用 ?SNI
或 ?NPN
等功能時(shí)使用。
返回包裝給定套接字的ssl.SSLSocket
?。
?ssl_options
可以是?ssl.SSLContext
? 對(duì)象或字典(由 ?ssl_options_to_context
? 接受)。 額外的關(guān)鍵字參數(shù)被傳遞給 ?wrap_socket
?(?SSLContext
方法或 ?ssl
模塊函數(shù),視情況而定)。
更多建議: